Найти каталоги больше X и переместить в новое место назначения

Найти каталоги больше X и переместить в новое место назначения

Я хочу переместить все папки (max-depth=1), которые больше 100 МБ, в новое место назначения. Вот что у меня получилось на данный момент:

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

Почему-то мой результат не перемещается в новое место назначения, я просто вижу длинный список всех папок, которые хочу переместить, вместо того, чтобы они были перемещены.

решение1

Опция -0означает xargs, что входные данные поступаютнулевой-separated, а не newline-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

Связанный контент