Что делать с командой для выполнения только ее подкаталога?

Хорошо, это, очевидно, ошибочное поведение, но мне удалось решить эту проблему, поместив раскладку клавиатуры США вверху в настройках клавиатуры. У второй чешской раскладки, которая у меня есть, есть +, а у американской — 1. Когда у меня чешская раскладка в качестве основной, хотя сейчас активна американская раскладка. Этот баг бывает.

1
31.12.2020, 14:11
2 ответа

Когда вы говорите

find   -something …
вы фактически говорите
find . -something …
т. е. поиск, начиная с.(текущего каталога ). Вы хотите искать только в подкаталогах, то же самое
find ./*/ -name ":RUN" -exec rm -rf {} ;
При этом не будут найдены подкаталоги, имена которых начинаются с.. Если вы хотите включить такие каталоги и используете bash, сначала сделайте shopt -s dotglob.

П.С. Наивно, find */ -…эквивалентно find ./*/ -…. Безопаснее использовать ./*/, если есть файлы имена которых начинаются с-.

2
18.03.2021, 22:39

попробуй:

find. -path './*/*' -type d -name ':RUN' -exec echo rm -rf -- {} +

Вы также можете заменить -path './*/*'его эквивалентом -mindepth 2.

2
18.03.2021, 22:39

Теги

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