Dotaz zacatecnika

Petr Baudis pasky na pasky.ji.cz
Úterý Říjen 30 16:51:03 CET 2001


> Nejprve bych se chtel zeptat, co je spatne na nasledujicim zapisu prikazu
> rm?
> rm -R -f /var/www/html/~*.*
> Cilem je smazat vsechny soubory zacinajici tildou vcetne podadresaru.
> Bohuzel uvedeny zapis neudela vubec nic.
Problemy zrejme zpusobuje ona tecka - rm -rf /var/www/html/~* by fungovat
melo bez problemu. V UN*Xech nema soubor nic jako priponu, metaznak * tudiz
do sebe zahrne i pripadne tecky v nazvu souboru.

> Druhy dotaz se tyka jineho problemu. Mam v adresari nekolik souboru bez
> pripony a potreboval bych je hromadne prejmenovat tak, aby se do nazvu
> dostal datum posledni zmeny souboru a pripona TXT. Lze to nejak jednoduse
> udelat?
To uz je trochu pokrocilejsi zalezitost. Slo by to imho udelat necim jako:

for i in *; do mv $i $i-`date -r $i +%Y%m%d`.TXT; done

prikaz for ma syntaxi for <promnena> in <hodnoty>; do <prikazy>; done
a dela to, ze do promnene postupne dosazuje hodnoty ze seznamu (my jsme
dali jako seznam masku *, dosadi se tedy postupne vsechny soubory v adresari),
ktery mu zadate, a vzdy pote provede sekci prikazy.

mv prejmenuje soubor z $i (za $promnena se dosadi obsah te promnene,
zde tedy jeden ze souboru v tom adresari) na $i-`neco divneho`.TXT - neboli
za jmeno souboru prida jeste pomlcku, za ni cosi zatim neznameho, a uplne
na konec .TXT.

pokud pouzijete `neco` (pozor, ne 'neco' nebo "neco"), dosadi se za tento
vyraz vystup prikazu jmenem neco. neboli za pomlcku se do jmena souboru
vlozi vystup prikazu date -r $i +%Y%m%d. date -r <soubor> vrati datum
posledni modifikace souboru <soubor>, +%Y%m%d udava format, v jakem ono
datum bude vytisteno. %Y je rok, %m je mesic a %d den (blize viz date --help,
man date, info date).

-- 

				Petr "Pasky" Baudis

UN*X programmer, UN*X administrator, hobbies = IPv6, IRC
Real Users hate Real Programmers.
Public PGP key, geekcode and stuff: http://pasky.ji.cz/~pasky/


Další informace o konferenci Linux