Як видалити все в каталозі, включаючи приховані файли та каталоги?
Зараз я використовую наступне:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..каталогу, який видалить все, що знаходиться в каталозі вище .
Як видалити все в каталозі, включаючи приховані файли та каталоги?
Зараз я використовую наступне:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..каталогу, який видалить все, що знаходиться в каталозі вище .
Відповіді:
Простий і прямий вперед:
find -delete
Включає каталоги та приховані файли. Принаймні gnu-find знає -delete, ваші findможуть відрізнятися.
find /path -delete -mindepth 1.
Найкраща відповідь: Не робіть цього. Рекурсивно видаліть сам каталог, а потім відтворіть його як порожній каталог. Іншим людям надійніше і простіше зрозуміти, що ви намагаєтеся зробити. При повторному створенні каталогу він може мати іншого власника, групу та дозволи. Якщо це важливо, будьте обережні. Крім того, якщо будь-які запущені програми мають в каталозі ручки відкритих файлів (дескриптори), ви не хочете їх видаляти. Якщо жоден із цих особливих випадків не застосовується, тоді простіше видалити весь каталог.
rm -rf -- * .[!.]* ..?*
Кожен з трьох шаблонів розширюється до себе, якщо він нічого не відповідає, але це тут не проблема, оскільки ми хочемо зіставити все і rm -fігнорувати неіснуючі аргументи.
Зауважте, що .*це відповідало б.. .
якщо ви знаходитесь в каталозі:
cd .. && rm -rf dir && mkdir dir && cd dir
інакше:
rm -rf /path/to/dir && mkdir /path/to/dir
О мій Зш
rm -rf (.|)*
Знову ж таки, це лише для Zsh.
*(D)( Dкласифікатор глобу вмикає glob_dotsопцію для цього шаблону).
rm -rf {.,}*( в відміну від Баша, ЗШ не включає в себе .і ..в {.,}*, по крайней мере , на моїй машині).
Як щодо використання find. Я думаю, що це, як правило, хороший вибір, коли вам доведеться копатись під підкаталогами.
find . -type f -exec rm {} \;
Спробуйте rm -rf *?*. Це видалить звичайні та приховані файли.
*?*вони не збігаються з "крапковими" файлами / dirs (якщо ви не включили dotglobопцію в bash , GLOB_DOTSопцію в zsh або еквівалент для будь-якої оболонки, яку ви використовуєте).
rm -rf .* *.