Я на Linux, использую Bash.

Мне нужно удалить все файлы без определенного суффикса, например "dist". Я знаю, что есть несколько хитростей, вместо того чтобы удалять все ненужные файлы по одному.

2 ответа2

4

Используйте следующее, чтобы перечислить все файлы, которые будут удалены (просто чтобы убедиться):

find /path/to/directory -mindepth 1 ! -name "*dist"

Добавьте -type f если вы хотите удалить только обычные файлы, а не символические ссылки или каталоги.


Запустите команду с дополнительным аргументом -delete в конце, чтобы удалить их.

2

Если вы включили расширенную глобализацию, вы можете попробовать:

rm !(*.dist)

Примечание: если у вас есть каталоги без расширения .dist, он также попытается удалить их, но потерпит неудачу.

Чтобы включить расширенную глобализацию, используйте: shopt -s extglob

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .