bash команда для перемещения всех подкаталогов меньше определенного размера - PullRequest
0 голосов
/ 23 января 2020

Я использую

find . -mindepth 1 -maxdepth 1 -type d -exec ./mvsmalldirs.sh {} \;

для передачи каждого подкаталога в Movies в этот скрипт оболочки:

SIZE=$(du -sb "$1" | cut -f1)
if [[ $SIZE -lt 5000000 ]]; then
    mv -t "$1" ../Moved/
    read -n 1 -s -r -p "Press any key to continue"
fi

Сначала у меня были проблемы с пробелами в имени каталога, но сейчас что я (я думаю) понял это, что-то действительно странное происходит ... как только я запускаю команду find, скрипт удаляет каталог назначения. Если я лаю не на том дереве, может кто-нибудь подсказать, как правильно переместить все каталоги размером менее 5 МБ?

1 Ответ

1 голос
/ 23 января 2020

Виновна эта команда:

mv -t "$1" ../Moved/

За параметром -t должен следовать целевой каталог, который в вашем случае равен ../Moved, а не "$1", который это источник, насколько я понимаю. Я полагаю, вы имеете в виду:

mv -t ../Moved/ "$1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...