Используйте find
:
find DFT*/OSZICAR -size -10c -printf "%h\0" | xargs -r0 rm -r
find
выполняет поиск всех файлов в каталоге DFT *
с именем OSZICAR
, размер файла которого меньше 10 байт; c
означает байты. find
печатает имя каталога % h
, в котором был найден файл (например, DFT105
), заканчивающийся нулевым байтом \ 0
xargs
, который считывает строку, оканчивающуюся нулевым байтом -0
, и вызывает rm -r
для каждого из них. Я рекомендую вызывать команду без части xargs
, чтобы проверить, все ли работает правильно, прежде чем что-либо удалять.
Изменить: Если ваша находка
не принимает параметр -printf
(например, OSX), используйте вместо этого:
find DFT*/OSZICAR -size -10c -exec sh -c 'rm -r $(dirname "$1")' sh {} \;