удаление папок в ударе Linux

я пытаюсь удалить у гну/Linux все папки в другой папке, которые запускаются с a"." (точка), для этого я использую утилиту находки, это - то, что я имею:

find . -iname ^\..* -exec rm -rf {} \;

но это ничего не делает :(. Я уже тестируюсь регулярное выражение и работы хорошо. Какая-либо справка??

благодарность много в течение Вашего времени.

4
задан 28.10.2014, 13:43

4 ответа

find использование globbing синтаксис, и можно использовать -type d найти просто каталоги:

find . -type d -name '.?*' | vim -

Необходимо быть чрезвычайно осторожными когда globbing или использующий regex для нахождения .hidden файлы, поскольку можно довольно легко взять . и удалите свою целую папку, или еще хуже, соответствие .. и Вы удаляете свою целую родительскую папку. Рассмотрите последствия следующей команды:

/home/someuser bash$ rm -rf .*
5
ответ дан 07.12.2019, 20:09

-name и -iname используйте шарики, не regexs. Попробовать -regex или -iregex вместо этого.

1
ответ дан 07.12.2019, 20:09
find . -type d -iname ".*" -not -iname "." -not -iname ".."
0
ответ дан 07.12.2019, 20:09

Если zsh является опцией, можно просто использовать: print **/.*(/) или rm конечно, :)

0
ответ дан 07.12.2019, 20:09

Теги

Похожие вопросы