Pracuji prostřednictvím SSH na WD My Book World Edition. V podstatě bych chtěl začít na úrovni konkrétního adresáře a rekurzivně odstranit všechny podadresáře odpovídající .Apple*
. Jak bych na to postupoval?
Zkusil jsem
rm -rf .Apple*
a rm -fR .Apple*
ani smazané adresáře odpovídající tomuto názvu v rámci podadresářů.
Přijatá odpověď:
find
je velmi užitečný pro selektivní provádění akcí na celém stromu.
find . -type f -name ".Apple*" -delete
Zde -type f
zajišťuje, že je to soubor, nikoli adresář, a nemusí to být přesně to, co chcete, protože také přeskočí symbolické odkazy, zásuvky a další věci. Můžete použít ! -type d
, což doslova znamená ne adresáře, ale pak můžete také odstranit znak a blokovat zařízení. Doporučuji podívat se na -type
predikát na manuálové stránce pro find
.
Chcete-li to provést výhradně se zástupným znakem, potřebujete pokročilou podporu prostředí. Bash v4 má globstar
možnost, která vám umožní rekurzivně porovnat podadresáře pomocí **
. zsh
a ksh
tento vzor také podporují. Pomocí toho můžete provést rm -rf **/.Apple*
. Toto není standard POSIX a není příliš přenosné, takže bych se vyhnul použití ve skriptu, ale pro jednorázovou interaktivní akci shellu je to v pořádku.