Ponechání souborů jen s určitým názvem

Linux141

Ponechání souborů jen s určitým názvem
« kdy: 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


trubicoid2

Re:Ponechání souborů jen s určitým názvem
« Odpověď #1 kdy: 21. 04. 2016, 11:16:36 »
Kód: [Vybrat]
find . -type f | grep -v '*toto*chci*' | xargs rm

Re:Ponechání souborů jen s určitým názvem
« Odpověď #2 kdy: 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 {} \;

Linux141

Re:Ponechání souborů jen s určitým názvem
« Odpověď #3 kdy: 21. 04. 2016, 11:30:23 »
Diky moc

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