Допустим, у меня есть 20 файлов с именем FOOXX, где XX - номер файла, например, 01, 02 и т. Д.
На данный момент, если я хочу удалить все файлы ниже номера 10, это легко, и я просто использую подстановочный знак, например, rm FOO0 *
Однако, если я хочу удалить определенные файлы в диапазоне, например, 13-15, это становится более сложным.
rm FPP [13-15] не работает и спрашивает меня, хочу ли я удалить все файлы. Аналогично rm FOO1 [3-5] желает удалить все файлы, которые начинаются с FOO1
Итак, каков наилучший способ удаления таких файлов?
Я пробовал как с bash, так и с zsh, и я не думаю, что они так сильно отличаются для такой основной задачи?
Ответы:
В Bash вы можете использовать:
или
удалить FOO13, FOO14 и FOO15.
Скобки расширений Bash описаны здесь .
источник
rm FOO{13..15}
.bash
команды образуют подмножествоz
команд оболочки.Для будущих читателей
find
команда также может удалять файлы. Я остановился на подобной проблеме:но выбранный ответ является самым простым ответом на этот вопрос.
источник
find . -name "*.o" -delete
и это сработало как шарм)ls | grep regex | XARGS RM
источник
find -regex ... -print0 | xargs -0 ...
для этого, иначе это не сработает для имен файлов с пробелами.find
то вы можете просто использовать-exec
.