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