假設bash
shell,並假定您想要爲每個子目錄重新啓動文件編號,並將所有文件移動到頂層目錄(留下空子目錄)。格式化爲腳本以方便您閱讀:
find . -type f -print0 | while IFS= read -r -d '' file
do
myfile=$(echo $file | sed "[email protected]/@@")
mydir=$(dirname "$myfile")
if [[ $mydir != $lastdir ]]
then
NR=1
fi
lastdir=${mydir}
mv "$myfile" "$(dirname "$myfile")_part${NR}"
((NR++))
done
或者作爲一個行命令:
find . -type f -print0 | while IFS= read -r -d '' file; do myfile=$(echo $file | sed "[email protected]/@@"); mydir=$(dirname "$myfile"); if [[ $mydir != $lastdir ]]; then NR=1; fi; lastdir=${mydir}; mv "$myfile" "$(dirname "$myfile")_part${NR}"; ((NR++)); done
當心。這是武裝,並將執行批量重命名/移動您當前工作目錄中或以下的每個文件。使用風險自負。
要刪除空子目錄:
find . -depth -empty -type d -delete
什麼是文件的原始名字? 'part1'和'part2',有沒有機會,還是你要枚舉它們? – DevSolar
你是否需要子文件夾中的重命名文件,或所有頂層目錄? – DevSolar
樣品一樣的文件: FineHowardMD_1490040273_tab17.pdf HowardFineMD_1463582881_tab17.pdf 我需要的父目錄名和「_partN」更改文件名 例子: new_folder_for_upload_part1.pdf new_folder_for_upload_part2.pdf 最後完成後,這工作,我需要將所有目錄中的所有文件存儲到頂層目錄中。 –