for i in *; do test -d "$i" && ( rclone size "$i" --json -L 2> /dev/null | jq --arg path "$i" 'if .bytes < 57462360 then ( { p: $path , b: .bytes}) else "none" end' | grep -v none | jq -r '.p' | parallel -j3 rclone purge "{}" -v -P ); done
Эта команда выполняет следующие действия:
— В цикле for она проходит по всем элементам текущего каталога.
— Команда test -d «$i» проверяет, является ли текущий элемент директорией.
— Если текущий элемент — директория, то команда rclone size «$i» —json запускает утилиту rclone для получения размера данной директории в формате JSON.
— После этого выполняется команда jq, которая фильтрует результаты и соответствует только размерам меньше 57462360 байт.
— Затем выполняется команда grep -v none, которая фильтрует строку «none».
— Далее вызывается команда jq -r ‘.p’, которая выбирает только путь к директории.
— Наконец, команда parallel -j3 rclone purge «{}» -v -p запускает утилиту rclone для удаления директории.
Эта команда полезна в ситуациях, когда вам нужно проверить размер каталога и удалить его, если он слишком маленький. Она автоматизирует процесс и позволяет избежать ручного удаления.
Альтернативы: вы можете использовать другие инструменты, такие как find и du, для проверки размера каталога и удаления его, если он слишком маленький. Однако, данная команда сочетает в себе удобство и мощность утилиты rclone.
Аргументы, передаваемые команде:
— -d «$i»: проверяет, является ли элемент директорией.
— —json: указывает, что результат выполнения команды rclone должен быть в формате JSON.
— -l: ограничивает уровень рекурсии при вычислении размера каталога.
— —arg path «$i»: передает значение пути к текущей директории в jq для последующего использования.
— -j3: указывает количество одновременно выполняющихся задач в parallel.
— -v -p: указывает утилите rclone удалить файлы и отобразить подробную информацию о процессе.