У меня такая же проблема, как и этот вопрос. Как удалить все файлы / папки из папки, за исключением нескольких папок? несколько раз. Именно по этой причине я хотел написать сценарий для команды rmnot. Он должен принимать произвольное количество файлов даже с помощью подстановочных знаков, если необходимо, и удалять что-либо (не recursevely) в том же каталоге, кроме этих файлов. Типичный пример:
rmnot *tex *bib *png
Мой скрипт работает, но поскольку я неопытен и хочу изучить его надлежащим образом, есть ли более элегантный способ написать этот скрипт?
[ f2]PS: Мне нужно использовать ZSH из-за двойной подстановки ${(P)i}, все, что я думаю, будет работать в bash.
====== Оптимизированная версия ==== =
#!/bin/bash
insert="-name . -or -name .."
for i; do
insert="$insert -or -name $i"
done
insert="\( $insert \)"
find -maxdepth 1 -not $insert -delete