Files
如何從包含數千個文件夾中移動 100 個文件?
我有一個包含數千個文件的目錄。如何將 100 個文件(任何文件都可以)移動到另一個位置。
for file in $(ls -p | grep -v / | tail -100) do mv $file /other/location done
假設文件名不包含空格、換行符(假設預設值為
$IFS
)、萬用字元(?
、*
、[
)或以-
.
在 zsh 中最簡單:
mv -- *([1,100]) /other/location/
這將按名稱字典順序移動前 100 個非隱藏文件(任何類型,僅更改為
([1,100])
正常文件,或除目錄之外的任何類型)。您可以使用glob 限定符選擇不同的排序順序,例如移動 100 個最舊的文件:(.[1,100])``(^/[1,100])``o
mv -- *(Om[1,100]) /other/location/
使用其他 shell,您可以在循環中執行此操作並提前退出。
i=0 for x in *; do if [ "$i" = 100 ]; then break; fi mv -- "$x" /other/location/ i=$((i+1)) done
另一種可移植的方法是建構文件列表並刪除除最後一個 100 之外的所有文件。