Fórum Root.cz
Hlavní témata => Software => Téma založeno: 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
-
find . -type f | grep -v '*toto*chci*' | xargs rm
-
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í:
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ší):
find ./ -maxdepth 1 -type f \! -name *2015* -exec echo {} \;
-
Diky moc
Řetězec zadávám proměnnou, tak místo ' použiji "