Portál AbcLinuxu, 14. května 2025 00:53
Dobrý den,
mám adresář, kde je několik set souborů v tomto formátu: list_290109_01.pdf , kde je dd/mm/rr_pořadí.
Bohužel se mi u všech souborů změnilo datum. Můžete mi říct, jak podle toho názvu všem souborům to datum změním?
Díky.
No, resit se to da plno zpusoby. Ja bych na to sel asi tak, ze bych pres find vylistoval adresar, pres sed nebo awkacko udaje ze souboru vytahnul regexem a pak zmenil datum souboru pres touch. Mozna je to moc slozite a nekdo by to udelal rychleji nejak jinak.
Hmmmm... jsem zacatecnik a tohle je pro me spanelska vesince...
find . -print | perl -pe 's/^.*_(\d\d)(\d\d)(\d\d)_.*\n$/20\3-\2-\1 $_/' | while read d n; do touch -d $d "$n"; done
No skoro to funguje, diky! Jen me to ale napise:
touch: neplatný formát data „.“
A u nejakych souboru je rok 00:00 a u jinych 2008 (coz je dobre) .... nevim, vubec, kde hledat chybku..
-mindepth 1
.
Myslim, ze to nebude mit vliv.. vsechny soubory mam v jednom adresari, kde to spoustim...
Myslim, ze to nebude mit vliv..Ach jo.
find . -print . <- tohle je ta tečka, na kterou to řve ./1.txt ./2.txtversus
find . -mindepth 1 -print ./1.txt ./2.txt
Pardon uz to nerve, ale rok se stejne u nejakych souboru neprepsal --> 00:00
list_DDMMYY_NN.pd
f to asi nebude. Nějaký příklad?
Takze soubory vypadaji takto: list_251108_01.pdf . Zhruba pulku jich to prejmenovalo a pulku ne... Ty neprejmenovane jsem na zkousku dal do zvlastniho adresare a neprejmenovalo to stejne zase ani jeden. Takze se na tom prikazu neco nelibi, nevim ale co, je to pojmenovany "stejne" jako ty prejmenovany ... stejny prava atd..
ls -l --full-timea uvidíte sám. Formát výpisu lze korigovat proměnnou LC_TIME.
_TIME=en_US. bash$ LC_TIME=en_US ls -l total 0 -rw------- 1 ash users 0 2008-11-24 00:00 list_251108_01.p
No jo, pravda.. hlava mapa Takhle mi to staci, za nejakou dobu se to samo zmeni na rok a bude klid.. diky.
Proc se mi meni datum a cas souboru, ktery kopiruju na mountly sitovy disk?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.