Xより大きいディレクトリを見つけて新しい宛先に移動する

Xより大きいディレクトリを見つけて新しい宛先に移動する

100MB を超えるすべてのフォルダー (max-depth=1) を新しい場所に移動したいです。 これまでのところ、次のようになっています。

du --max-depth=1 -h --threshold=100MB | head -n-1 | awk '{print $2}' | xargs -p -0 -I {} mv {} ../new_location

どういうわけか、結果が新しい宛先に移動されず、移動される代わりに、移動したいすべてのフォルダーの長いリストが表示されるだけです。

答え1

オプション-0xargs入力が来ることを意味しますヌル改行区切りではなく、区切り文字で区切られます。awkスクリプトでは、出力レコード区切り文字をORSnull 文字に設定します\0

du --max-depth=1 -h --threshold=100MB | head -n-1 | awk 'BEGIN {ORS="\0"} {print $2}' | xargs -p -0 -I {} mv {} ../new_location

関連情報