Вы можете использовать расширение имени файла Bash's :
rm !(*_orig.jpg)
Синтаксис !(pattern)
:
Совпадает с чем угодно, кроме одного из данных шаблонов.
так что это распространяется на все имена файлов, которые не совпадают с *_orig.jpg
, которые Вы можете удалить (или убрать с дороги). Вам необходимо включить опцию extglob
, которую Вы можете сделать с помощью shopt -s extglob
заранее (в противном случае Вы получите ошибку формы "событие не найдено"). Однако, обычно она включена по умолчанию.
Альтернативно, и portable, Вы можете просто временно переместить файлы, которые хотите сохранить, и удалить остальные:
mkdir tmp
mv *_orig.jpg tmp
rm *.jpg
mv tmp/*.jpg .
rmdir tmp
Есть опции, использующие find
а также:
find . -type f ! -name '*_orig.jpg' -exec rm '{}' +
которые будут находить любые (обычные) файлы рекурсивно в текущем каталоге, которые не имеют имени *_orig. jpg
и удалите их; это лучший (но не единственный) вариант, если не все файлы находятся непосредственно в одном каталоге.
.
, Если вы не планируете изменить данные просто, монтируют его только для чтения. (Это звучит прекрасным для взятия резервного копирования.)
, Если вы действительно планируете изменить данные, например, для того, чтобы запустить тест против него, затем снимок чтения-записи - то, что вы хотите.
Довольно простой. :)