удалите подпапки, не удаляя родительскую папку

Понятый это:

Порт должен быть установлен на 22 для ssh, не моего порта пользователя.

http://en.wikipedia.org/wiki/List_of_well-known_ports_%28computing%29#Well-known_ports

15
15.08.2013, 23:20
5 ответов
rm -rf /config/filegroups/*

Если Вы хотите удалить только каталоги (и символьные ссылки на каталоги), оставляя какие-либо файлы внутри /config/filegroups нетронутый, можно использовать запаздывающую наклонную черту:

rm -rf /config/filegroups/*/

Если Вы хотите удалить каталоги с именами, начинающимися a . также, принятие Вас имеет довольно недавний удар, необходимо использовать опцию оболочки dotglob:

shopt -s dotglob
rm -rf /config/filegroups/*/
shopt -u dotglob
28
27.01.2020, 19:49
  • 1
    и не, что это не будет работать на комнату-rf "/config/filegroups /*" –  Ilya Yevlampiev 23.11.2017, 14:10

Это удалит все файлы и каталоги под /config/filegroups включая "скрытые" файлы и каталоги (имена, запускающиеся с .).

find /config/filegroups -mindepth 1 -maxdepth 1 | xargs rm -rf

Если имена файла или каталога содержат пробелы, необходимо сделать это как это:

find /config/filegroups -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf

Премия: можно сначала проверить то, что будет удаленным как это:

find /config/filegroups -mindepth 1 -maxdepth 1

Если Вы хотите сохранить определенные файлы или каталоги, можно сделать это как это:

find /config/filegroups -mindepth 1 -maxdepth 1 -not -name "keep"
5
27.01.2020, 19:49
  • 1
    Есть ли любая причина не использовать find -delete опция? –  evilsoup 16.08.2013, 11:13
  • 2
    -delete отказывается удалять не пустые каталоги. -maxdepth переопределения -depth, который необходим -delete удалить не пустые каталоги. Без -maxdepth Вы не можете легко видеть, какие каталоги будут удаленными, потому что это также перечисляет файлы в каталогах. Не использование -maxdepth также средства Вы не можете легко использовать фильтры как -name. Кроме того, -delete удаляет каталоги путем удаления всех объектов внутри сначала, которые могут занять много времени, если это - большое и глубокое дерево. –  lesmana 16.08.2013, 13:46

Я предпочитаю использовать Найти с с -EXEC , что бы сделать ваш звонок что-то вроде этого:

find /config/filegroups/ -maxdepth 1 -mindepth 1 -type d -exec rm -rf {} \;
4
27.01.2020, 19:49

Если вы уже находитесь в папке, вы можете просто ввестиrm -rf./**

Так:

cd /config/filesgroups
rm -rf./**

Это глобальный шаблон для удаления всех подпапок с локального пути..

./относится к локальной папке... и **ко всем папкам ниже..

-2
27.01.2020, 19:49

Попробуйте это:

find /config/filegroups/* -type d -name filegroupA -prune -exec rm -rf {} \;
1
02.02.2021, 03:42

Теги

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