rm -R nemaze soubory?

"David Šauer" davids na iol.cz
Čtvrtek Říjen 1 20:14:56 CEST 1998


>>>> "Michal" == Michal Krause <mike na navrcholu.cz> pise:

    Michal> Milos Prudek wrote:
    >> 
    >> mam adresar /data/we1, /data/rt2, /data/sdw45, a spoustu dalsich
    >> adresaru pod /data/, a potrebuji smazat vsechny soubory s priponou .htm
    >> v techto adresarich.
    >> 
    >> Myslel jsem ze staci napsat
    >> 
    >> rm -R /data/*.htm
    >> 
    >> jenze jsem zjistil ze rm skonci, jakmile zjisti ze v adresari /data/
    >> neni zadny soubor .htm (jsou tam jen adresare), a kdyz mu tam nejaky

To souhlasi, takto ma smazat jen soubory a adresare, ktere jsou pod
/data/ a vyhovuji masce *.htm (takze by smazal i adresare [prep. -R] vyhovujici
teto masce). UNIX(tm) i Linux() totiz nejsou dos a nahradu metaznaku v tomto
pripade provadi shell a nikoli program "rm". V tomto pripade provede
shell nahradu metaznaku, ale pokud se mu to nepovede, preda teprve
retezec *.htm programu rm, ten ale zrejme soubor, ktery se jmenuje
'*.htm' nenajde, mel by vypsat hlasku o neexistejci souboru.
  Pokud soubor vyhovujici *.htm existuje, provede shell nahradu
metaznaku, asi takto:

mejme soubory /data/1.htm /data/2.htm a adresar /data/3.htm
pokud se provede rm -R /data/*.htm, smazou se soubory i adresar.

    >> pridam, tak smaze jen tento soubor a do adresaru neleze. Zato kdyz
    >> napisu
    >> 
    >> rm -R /data/
    >> 
    >> tak smaze cely /data/
presne jak ma .. na co si stezujete ?

    >> 
    >> Da se na tohle rm pouzit?
Nevim jak 'takhle', ale urcite se necha pouzit dle "man rm"

    Michal> Ja osobne pouzivam
    Michal> find . -iname *htm -exec rm -f {} \;

Neni to totez jako vyse, ale asi bude fungovat (jen smaze *htm,
*HTM, *hTM atd.) Case-sensitive je prepinac -name 

    Michal> Sice to neni tak kratke, ale uz jsemsi zvyknul
jednodusi jednoduse, slozitejsi sloziteji ...

-- 
* David Sauer, student of Czech Technical University
* electronic mail: davids na iol.cz


Další informace o konferenci Linux