Как указывает другой ответ, вы можете попытаться найти все каталоги с именем testи удалить их
find -name "test" -type d -delete
Я столкнулся с некоторыми проблемами с перекрестной совместимостью на Mac, поэтому я использовал эту эквивалентную команду:
find -path "*/test" -type d -delete
- -path : ищет шаблон в полностью определенном имени файла.
Однако в любом случае, если в каком-либо из названных каталогов testесть файлы, findони пожалуются на то Directory is not empty, что каталог не удастся удалить.
Если вы намеревались удалить все файлы, включая testкаталог, то мы можем использовать тот же трюк, чтобы удалить все файлы внутри каталогов, названных testпервыми.
find -path "*/test/*" -delete
Шаблон: "*/test/*"гарантирует, что мы удаляем файлы только в каталоге с именем /test/. Когда каталоги пустые, мы можем удалить каталоги, используя первую команду:
find -path "*/test" -type d -delete
Пример:
$ tree
.
├── mytest
│ └── test
│ └── blah.txt
├── test
│ ├── bar.jpg
│ └── dir
│ └── bar.bak
└── testdir
└── baz.c
5 directories, 4 files
$ find -path "*/test" -type d -delete
$ tree
.
├── mytest
│ └── test
├── test
└── testdir
└── baz.c
4 directories, 1 file
$ find -name "test" -type d -delete
$ tree
.
├── mytest
└── testdir
└── baz.c
2 directories, 1 file
+в поиске. Я понятия не имел, определенно хотел бы знать это давно.