Portál AbcLinuxu, 9. května 2025 20:50

Dotaz: bash - find

13.3.2006 15:35 HaM
bash - find
Přečteno: 667×
Odpovědět | Admin
Ahoj, potreboval bych poradit se skriptem. Mam na serveru cca 1000 useru a chtel bych vyhledat a smazat jen urcite veci. Ale toto smim udelat jen u nekterych useru. Shodou okolnosti maji tito ve svem nazvu nejake cislo.
Prikaz pro vyhledavani je mi jasnej:
find /home -iname *cokoliv* -type -f -print0 | -xargs -0 /bin/rm -f;
Ale toto proleze kazdeho usera. Jde mi o to aby to mazalo jen v domacich adresarich useru, kteri maji jmeno ve tvaru jmenoXX. Kde XX jsou cisla.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 13.3.2006 15:48 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: bash - find
Odpovědět | | Sbalit | Link | Blokovat | Admin
cd /home
for F in *[0-9]; do
  find "$F" -iname anything -type f -print0 -exec rm -f '{}' \;
done
Snad jsem nic nepodělal... jo a bere to všechno s číslem na konci ;-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 13.3.2006 15:54 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: bash - find
No dobře, to asi nebude nejvhodnější řešení na systému se 1000 usery.. jestli k ostatním nemáš právo, můžeš tam hodit test -w.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
13.3.2006 16:05 HaM
Rozbalit Rozbalit vše Re: bash - find
Mam pristup ke vsem...
Predesle reseni je na muj vkus moc zdlouhave. Jedno projeti adresare /home trva cca 10 minut. Tudiz casova narocnost pomoci cyklu for by zde byla velice velka.
13.3.2006 16:19 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: bash - find
co něco jako:

getent passwd | cut -d: -f1 | grep -e '[0-9]$' | while read prom; do find "/home/9/$prom" -iname...; done
-- Nezdar není hanbou, hanbou je strach z pokusu.
13.3.2006 16:51 Ham
Rozbalit Rozbalit vše Re: bash - find
Diky, tudy vedla cesta k cili...
13.3.2006 16:54 barney
Rozbalit Rozbalit vše Re: bash - find
môžeš použiť aj
find *[0-9 -iname anything -type f -print0 | xargs ...
resp
find . -regex './[^/]*[0-9]/.*' -print0 | xargs
13.3.2006 17:10 HaM
Rozbalit Rozbalit vše Re: bash - find
Diky, zitra testnu casovou narocnost obou konecnych reseni a vyberu si...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.