Команда для видалення всіх файлів і папок рекурсивно, включаючи приховані, на терміналі MAC OS?


9

rm -rf * буде видалено всі файли та папки, але не приховані.

rm -rf .* видалити всі приховані файли і папки, але не ті, які не приховані, правильно?

Яку команду слід видати, щоб видалити всі файли і папки, включаючи приховані? (крім. і ..); ?

Відповіді:


12
rm -rf * .*

буде робити трюк.


1
НІ! .* розгорнеться до всіх невидимих ​​записів у поточному каталозі у тому числі .. - що означає використання .* як аргумент rm -rf спробує видаліть каталог, розташований над поточним, і весь його вміст . rm відмовиться це зробити, але я не вважаю, що покладатися на цей сейф ...
Gordon Davisson

@Gordon Davisson: Я створив каталог. Я додав до нього файли, включаючи приховані файли. Я зробив цю команду. Вона рекурсивно видалила весь вміст у цьому каталозі, і не видалив жодного вмісту, що знаходиться поза ним. Чи можете ви пояснити свій коментар?
MEM

Дякуємо за роз'яснення щодо вашого коментаря вище. Тепер я розумію вашу точку зору. Будь-яка альтернативна пропозиція?
MEM

як щодо використання find з -delete позначити ...
user1055604

1
@GordonDavisson rm слід надрукувати a rm: "." and ".." may not be removed у цьому випадку - не буде автоматично видалено батьківський каталог.
slhck

1

Спробуйте це:

find . -mindepth 1 -delete

Я не впевнений, що -mindepth підтримується всіма реалізаціями find; якщо у вас немає цього, -path має дати інший спосіб утримати його від спроби видалити .:

find . -path "*/*" -delete

BSD find має цей варіант теж, так.
slhck

1

Просто використовуйте цю команду для очищення файлів / каталогів відповідно до певних критеріїв:

# tmpwatch -fauv 0 .

0

shopt -s dotglob також робить * включати файли, які починаються з періоду.

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