![](/img/trans.png)
[英]writing a script in terminal to move files from sub folders to a parent folder
[英]Need to move every 5000 files to new folder using batch script
我有一個包含 >10000000 個文件的文件夾,需要將它們移動到每個 5000 個的單獨文件夾中。 使用批處理腳本如何將它們移動到單個文件夾?
i=0
while true; do
ls | head -5000 > ../files
if [ ! -s ../files ]; then
break
fi
(( i++ )) # Boomer here but feeling younger every day thanks to KamilCuk.
mkdir ../dir$i # I know. No error checking here.
while read filename; do
mv "$filename" ../dir$i # No error checking here either.
done < ../files
done
如果mkdir
或mv
反復失敗,此腳本將變成無限循環。 您還可以指定存儲臨時文件要小心files
並在你讓你的目標目錄; 否則下一個ls
必須避免識別前一個循環迭代的輸出目錄。
如果文件名包含換行符(不太可能但很容易實現),腳本也會出現問題。 如果你有那個用例,那么這個腳本將再次進入無限循環,因為mv
命令將失敗,因為read
將無法正確讀取該文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.