[英]How do I move a large number of zip files in a directory to a specified number of multiple subdirectories in bash?
在當前目錄中,有數百個.zip文件。 該目錄中還有六個名為0到5的子目錄。.zip文件需要均勻分布(或盡可能接近)並移動到這些子目錄中。 我不在乎哪個文件最終位於哪個子目錄中,只要它們均勻分布即可。
我如何嘗試實現這一目標。 我應該利用maxdepth並嘗試查找子目錄的數量,然后遞歸地放置文件,或者如何處理?
這是一個快速而骯臟的解決方案:對於每個zip文件,將目標目錄號增加一個,然后將其移動到該目錄中。
如果目標目錄號不再可用,請重置目標目錄號。
#!/usr/bin/env bash
declare -i i=0
for f in *.zip; do
mv ${f} ${i}/
i=$i+1
if [[ ! -d $i ]]; then
i=0
fi
done
現在注意這並不是萬無一失的,它為每個文件生成了一個單獨的移動過程。 如果您只需要這樣做一次,我認為不值得花更多的腦細胞。 但是,如果您要定期執行此操作,則應考慮可能發生的錯誤類型,如何捕獲錯誤,甚至可以考慮更有效的動作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.