Як видалити каталог з терміналу, не знаючи його назви?


1

У мене є каталог, який я хочу видалити. Ім'я каталогу - випадковий рядок літер та цифр. Я знаю шлях до каталогу його батьків, тож як би я рекурсивно видаляв вміст цього каталогу?

В батьківському каталозі немає інших файлів / каталогів.

Я знаю, що я повинен зробити щось подібне:

$ rm -r path_to_dir

але оскільки у мене немає прізвища реж., я не впевнений, чи спрацює це.


Чи є причина, що ви не можете видалити батьківську папку, а потім відтворити її?
soandos

@soandos Hahaha зараз я почуваюся дурним: $
stackErr

Відповіді:


1

Якщо припустити, що path_to_dirце шлях до батьківського каталогу, ви можете просто зробити це:

rm -r path_to_dir/*

Зірочка ( *) - це майна, щоб рекурсивно видаляти все з батьківського каталогу. Це простіше, ніж видалити та відтворити весь батьківський каталог, особливо якщо він, наприклад, має деякі спеціальні дозволи, які ви хочете зберегти.


rmdir path_to_parent / * також буде працювати і безпечніше, оскільки він видаляє лише порожні папки, але не рекурсивно (оскільки папка з папкою в ній не порожня).
Ярослав Рахматуллін

@ Ярослав Рахматуллін для мене це не працює, оскільки каталог містить інші файли та папки.
stackErr

0

Спробуйте зробити щось на кшталт:

rm -rf path_name
mkdir path_name


Я прийму відповідь Індрека, оскільки його рішення - це те, що я шукав.
stackErr

@Indrek має більш чисте рішення (хоча моє спрацює)
soandos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.