Используя команду find в других каталогах?

299
Wunderbread

Команда find . -type f -name '*.jpg' -deleteудаляет все в текущем каталоге и рекурсивно удаляет файлы оттуда.

Что необходимо обновить в этой команде, чтобы она просто удаляла все файлы в указанном каталоге, например /users/user/desktop?

0
подсказка: `-maxdepth` Hannu 7 лет назад 1
подсказка: `` человек найти`` G-Man 7 лет назад 1

1 ответ на вопрос

3
Marek Rost

Команда findпринимает свой первый аргумент (аргументы) в качестве директора (ов), в котором нужно выполнить свое действие.

Одна точка .представляет текущий каталог. (Две точки ..представляют родительский каталог.) Это означает, что ваша команда удаляет все файлы с .jpgсуффиксом в (и под) текущем каталоге.

Чтобы удалить все файлы с .jpgсуффиксом в другом каталоге, например, /Users/username/Desktop, вы просто будете использовать

найти / Пользователи / имя пользователя / Desktop -type f -name '* .jpg' -delete
Это также повлияет на все подкаталоги.

Добавить опцию -maxdepth чтобы ограничить уровни подкаталогов. Команда

find / Users / имя пользователя / Desktop -maxdepth 1 -type f -name '* .jpg' -delete
удаляет файлы с jpgрасширением только из Desktopпапки; он не имеет доступа к папкам внутри (ниже) рабочего стола.

Обратите внимание, что вы можете перечислить несколько каталогов; например, `find dir1 dir2 dir3 -type f ...` G-Man 7 лет назад 1