Получить вывод find для удаления файлов позже

Получить вывод find для удаления файлов позже

Я хотел бы получить результаты этой команды:

find . -type f -size +200M -exec ls -lh {} \;

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

Как я могу это сделать?

решение1

Вам не нужно сохранять результаты findв переменной только для того, чтобы иметь возможность удалить файлы (если у вас нет каких-то особых требований, о которых вы не упомянули), так как findпредусмотрен специальный -deleteпараметр, который сделает это за вас:

find . -type f -size +200M -print -delete

КакlsНе рекомендуется разбирать вывод команды.

Если вы действительно хотите проанализировать файлы, возвращаемые функцией find, вам нужно сделать что-то вроде:

find . -type f -size +200M -print0 | xargs -0 rm -v

Поскольку вы не можете хранить переменные оболочки с нулевыми символами, и вы не хотите прерывать скрипт пробелами (что может привести кгигантские жуки), обходным решением может быть сохранение списка во временном файле или сериализация данных (например base64, ).

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