我需要創建一個腳本,該腳本將通過並將多個下劃線添加到多個目錄中的所有文件,而忽略已有前綴的文件。例如,_file1, _file2, file3, file4
需要看起來像_file1, _file2, _file3, _file4
在Unix中向某些文件名添加前綴
我對Unix腳本知之甚少,所以一個簡單的解釋將不勝感激!
我需要創建一個腳本,該腳本將通過並將多個下劃線添加到多個目錄中的所有文件,而忽略已有前綴的文件。例如,_file1, _file2, file3, file4
需要看起來像_file1, _file2, _file3, _file4
在Unix中向某些文件名添加前綴
我對Unix腳本知之甚少,所以一個簡單的解釋將不勝感激!
你可以使用一個班輪是這樣的:
find dir_with_files -regextype posix-extended -type f -regex '^.*\/[^_][^\/]*$' -exec rename -v 's/^(.*\/)([^_][^\/]*)$/$1_$2/' '{}' \;
其中dir_with_files是搜索文件的上層目錄。然後它找到名稱不是從_開始的文件,並且每個文件都被重命名。
在進行任何更改之前,您可以使用帶有params -n -v的重命名來向您顯示將執行的操作,而不實際執行它們。
find dir_with_files -regextype posix-extended -type f -regex '^.*\/[^_][^\/]*$' -exec rename -v -n 's/^(.*\/)([^_][^\/]*)$/$1_$2/' '{}' \;
@michaeljay如果我的解決方案有效,請認爲它是正確的解決方案。 – Kamil