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.