Існує маса ситуацій, коли використання A *практично неминуче - наприклад, rm -rf *у папці, яка містить тисячі підпапок і файлів.
Але що робити, якщо ви хочете виключити з команди лише один-два файли чи папки rm? Я гуляв по дорозі і знайшов лише досить складні рішення, як, find . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;як сказано тут .
Чи є можливість зробити це простішим способом - без цього об'їзду find? Наприклад, rm -rf --exclude='one' --exclude='two' --exclude='three' *як у rsync чи просто rm -rf -e 'one','two','three' *?
Може бути , навіть взагалі можливість виключити речі з *(так що інші команди типу cp, mv... не повинні реалізовувати свої власні)? Щось подібне *{'one','two','three'}чи так?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three, але я вважаю за краще рішення, що дає можливість чітко виключити щось із *. Звичайно, будуть ситуації, коли переміщення або копіювання файлів до іншого пункту призначення не буде можливим.
findцю--deleteопцію (не потрібно виконуватиrmкожен файл. Це зайві накладні витрати).