我有一個目錄 ( anime),其中包含許多具有不同檔案夾大小的檔案夾。
如果這些檔案夾的大小超過 40gb,我想將所有這些檔案夾移動到名為“over40gb”的子檔案夾中
我測驗了一個腳本,但這僅在我想將一個檔案夾(稱為“tomove”)移動到另一個檔案夾(稱為“over40gb”)時才有效
if [ $(du -m -s tomove/ | cut -f1) -gt 40000 ] ; then
mv tomove/ $HOME/over40gb/
fi
是否可以將此腳本用于目錄內的所有檔案夾(僅 1 級檔案夾)anime擴展到over40gb子檔案夾?
我從這種情況開始
anime
|
tomove1 (30 gb)
tomove2 (45 gb)
tomove3 (40 gb)
我想以這種方式移動
anime
|
tomove1 (30 gb)
|
over40gb
|
tomove2 (45 gb)
tomove3 (40 gb)
uj5u.com熱心網友回復:
如果您只想要一級檔案夾,那么就這么簡單
z=$HOME/theanime/
mkdir -p $HOME/over40gb/
for x in $(ls -1 --color=never -d ${z}*/); do
y=$(du --max-depth=0 --block-size=1M $x | awk '{print $1}')
if [ $y -ge 40000 ]; then
mv ${x} $HOME/ofer40gb/
fi
done
如果您需要除一級檔案夾之外的任何其他內容,我將需要編輯此答案。
“over40gb”檔案夾與 tomove 目錄位于同一目錄中,但您可以更改它
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487301.html
