我想将所有大于 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
选项-0
表示xargs
输入来自无效的-separated,而不是换行符分隔。在awk
脚本中,将输出记录分隔符设置ORS
为空字符\0
:
du --max-depth=1 -h --threshold=100MB | head -n-1 | awk 'BEGIN {ORS="\0"} {print $2}' | xargs -p -0 -I {} mv {} ../new_location