Fórum Root.cz

Hlavní témata => Software => Téma založeno: Linux141 21. 04. 2016, 10:39:53

Název: Ponechání souborů jen s určitým názvem
Přispěvatel: Linux141 21. 04. 2016, 10:39:53
Ahoj

Chtěl bych se zeptat, jestli jde nějak (např. pomocí find) ponechat soubory v adresářích, které obsahují určitý řetězec v názvu (např. *2015* ) a všechny ostatní soubory smazat. Struktura podsložek není předem přesně známa.

Diky
Název: Re:Ponechání souborů jen s určitým názvem
Přispěvatel: trubicoid2 21. 04. 2016, 11:16:36
Kód: [Vybrat]
find . -type f | grep -v '*toto*chci*' | xargs rm
Název: Re:Ponechání souborů jen s určitým názvem
Přispěvatel: Bazil_XXL 21. 04. 2016, 11:18:32
Kód: [Vybrat]
find ./ -type f \! -name *2015* -exec rm -rf {} \;
Vyhledává v aktuálním adresáři pouze soubory které neobsahují uprostřed řetězec 2015 a pak vyhledané soubory smaže.

Otestovat můžeš pomocí:
Kód: [Vybrat]
find ./ -type f \! -name *2015* -exec echo {} \;
Případně ještě omezit pouze na aktuální adresář a neprohledávat podadresáře (pro kontrolu podmínek lepší):
Kód: [Vybrat]
find ./ -maxdepth 1 -type f \! -name *2015* -exec echo {} \;
Název: Re:Ponechání souborů jen s určitým názvem
Přispěvatel: Linux141 21. 04. 2016, 11:30:23
Diky moc

Řetězec zadávám proměnnou, tak místo ' použiji "