С терминалом есть много способов сделать это. Одним из вариантов является использование find (1):
find /your/dir -type f \! -name 'x300' \! -name '300x' -exec echo rm -f {} \;
Замените /your/dir
на место, где лежат ваши файлы. Как только вы абсолютно уверены, что команда find касается только тех файлов, которые вы действительно хотите удалить с помощью rm, удалите «echo» из exec-part и повторите, чтобы фактически удалить файлы, вместо того, чтобы распечатывать, какие файлы будут удалены.
Некоторые объяснения:
find / your / dir находит все файлы и папки в / your / diir и ниже.
-type f фильтрует только файлы.
-name x300
фильтрует только вещи, содержащие x300 в имени файла.
! полностью изменяет это (таким образом только файлы, НЕ содержащие).
-exec выполняет команду. Вы можете выполнить эхо, или вы могли бы -print
их.
Вы можете использовать rm в качестве команды для удаления или -delete
использовать здание поиска.
{}
текущее имя файла Если вы используете, \;
то {} будет заменено одним именем файла за раз. (поэтому, если у вас есть 10000 файлов для удаления, он запустит новый 10000 раз).
Вы также можете заменить это на, +
чтобы получить много файлов за один раз (хотя -delete еще более эффективен).