Я на Linux, использую Bash.
Мне нужно удалить все файлы без определенного суффикса, например "dist". Я знаю, что есть несколько хитростей, вместо того чтобы удалять все ненужные файлы по одному.
Используйте следующее, чтобы перечислить все файлы, которые будут удалены (просто чтобы убедиться):
find /path/to/directory -mindepth 1 ! -name "*dist"
Добавьте -type f
если вы хотите удалить только обычные файлы, а не символические ссылки или каталоги.
Запустите команду с дополнительным аргументом -delete
в конце, чтобы удалить их.
Если вы включили расширенную глобализацию, вы можете попробовать:
rm !(*.dist)
Примечание: если у вас есть каталоги без расширения .dist, он также попытается удалить их, но потерпит неудачу.
Чтобы включить расширенную глобализацию, используйте: shopt -s extglob