команда rm: удалить файлы с именами, содержащими скобки

Я пытаюсь удалить все файлы в каталоге Windows 7 с именами файлов, содержащими скобки;( и ):

Использование MinGW:

rm *(*)*

я получаю ошибку:

sh: syntax error near unexpected token '('

Я предполагаю, что это потому, что rm команда видит скобку как какой-то специальный ввод. Что я могу сделать вместо этого?

8
задан atomh33ls
04.03.2023 20:11 Количество просмотров материала 2630
Распечатать страницу

2 ответа

вы можете" экранировать " определенные метасимволы, предваряя их обратной косой чертой.

$ touch 'aaa(bbb)ccc'
$ rm *\(*\)*
$ ls
$
3
отвечен RedGrittyBrick 2023-03-06 03:59

вы можете сделать следующее:

find . -type f -name "*(*)*" -delete -maxdepth 1

для тестирования я бы использовал -print аргумент первый:

find . -type f -name "*(*)*" -print -maxdepth 1

если вы хотите сделать это во всех подкаталогах вы можете пропущены -maxdepth 1

если -delete не работает, вы можете попробовать:

find . -type f -name "*(*)*" -exec rm -rf {} \;

изменить: включил -type f делать это только на файлах (а не в каталогах), как в rm.

3
отвечен Rik 2023-03-06 06:16

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх