Určitě jste někdy ověřili, že máte zbytečný typ souboru v několika složkách, který zabírá málo místa, ale jednoduše jej ve svém počítači nechcete. Například v macOS jsou vytvořeny některé soubory .DS_Store které ukládají informace o ikoně složky, její velikosti a umístění a ve Windows existují ekvivalentní soubory desktop.ini. Co dělat, pokud máme adresář plný podadresářů a chceme tyto nebo jiné typy souborů odstranit? Musíme udělat rekurzivně vymazat Každý z nich.
To je něco, co můžeme dělat se všemi typy souborů. Například pokud máme pevný disk plný hudby, máme přehrávač, který si stáhl obaly a nechceme, aby byly uloženy, můžeme k jejich odstranění použít stejný příkaz, který podrobně uvedeme níže. Samozřejmě, vezmeme-li v úvahu, že rekurzivně odstraníme soubory adresáře a jejich podadresáře pomocí terminálu a že tyto budou navždy ztraceny, nebolí to být opatrný a / nebo provést test před smazáním všeho, co chceme smazat.
Rekurzivně odstraňte soubory typu z terminálu
Příkazy pro ukázkové soubory macOS .DS_Store by byly následující:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Z předchozích příkazů nás první umístí do složky, kde chceme začít, tj. Do té, která obsahuje všechny soubory .DS_Store, které chceme odstranit. Druhým je ten, který odstraní všechny soubory .DS_Store z první složka a její podsložky nebo adresáře. Pokud chceme smazat fotografie z dříve zmíněných hudebních složek, musíme uvést typ přípony mezi uvozovky, například „* .jpg“.
Abych byl upřímný, je to něco, co udělám v den, kdy přestanu používat Cantata jako výchozí hudební přehrávač. Cantata vytváří a skrývá informační soubory se stejným názvem jako skladby, které mají před sebou tečku a nízkou čáru (například ._Song). Když to potřebuji, příkaz, který budu muset použít, bude nalézt. -name '._ *' -type f -delete.
Pomohl vám tento malý průvodce rekurzivně odstranit soubory z terminálu?
Děkujeme, ale ve vašem kódu je chyba. Musíte použít regulární výraz '*', tedy '* .DS_STORE'. Doporučuji vám to opravit. Pro ty, kteří mají méně znalostí bash, kód, který jste zadali, pro ně nebude fungovat. Pozdravy!