1
我有很多沒有文件擴展的文件。現在我想將.txt
添加到所有文件。我嘗試了以下,但它給出了一個錯誤,mv: rename . to ..txt: Invalid argument
。如何添加.txt到使用終端的目錄中的所有文件
我該如何做到這一點?
find . -iname "*.*" -exec bash -c 'mv "$0" "$0.txt"' {} \;
我有很多沒有文件擴展的文件。現在我想將.txt
添加到所有文件。我嘗試了以下,但它給出了一個錯誤,mv: rename . to ..txt: Invalid argument
。如何添加.txt到使用終端的目錄中的所有文件
我該如何做到這一點?
find . -iname "*.*" -exec bash -c 'mv "$0" "$0.txt"' {} \;
你快到了!
只需添加-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"' {} \;
感謝第一個人工作。 – shin