簡體   English   中英

如何將目錄中的大量zip文件移動到bash中指定數量的多個子目錄中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM