2014-04-26 26 views
1

我有很多沒有文件擴展的文件。現在我想將.txt添加到所有文件。我嘗試了以下,但它給出了一個錯誤,mv: rename . to ..txt: Invalid argument如何添加.txt到使用終端的目錄中的所有文件

我該如何做到這一點?

find . -iname "*.*" -exec bash -c 'mv "$0" "$0.txt"' {} \; 

回答

4

你快到了!

只需添加-type f只與文件處理:

find . -type f -exec bash -c 'mv "$0" "$0.txt"' {} \; 

如果您mv處理-n選項,你可能想使用它(這是不覆蓋現有文件的選項)。


你有這個錯誤是因爲.是第一個被發現的found之一,你的系統抱怨(正確)當您想重命名.!與-type f你肯定這不會發生。現在,如果您想要處理目錄中的所有內容,則可以在find命令的開頭添加-mindepth 1(因爲.被認爲是深度0)。


這不是很清楚你的問題,但如果你想擴展.txt添加到所有文件不具有擴展什麼? (我們同意有一個分機意味着有一段時間在名稱)。在這種情況下,您將使用如下的否定-name '*.*'

find . -type f \! -name '*.*' -exec bash -c 'mv "$0" "$0.txt"' {} \; 
+1

感謝第一個人工作。 – shin

相關問題