Portál AbcLinuxu, 1. května 2025 22:39
Naštěstí soubory byly čerstvě přesunuty z FAT flashdisku takže je undelete poměrně úspěšné a ze 400 souborů se mi jich podaří zachránit zhruba 350.hm, zajímavé - pokud byly soubory čerstvě přesunuty, očekával bych 100% úspěšnost, copak se stalo s tou padesátkou?
N=0; for i in *.jpg; do N=$(($N+1)); echo mv "$i" `printf "%03d.jpg" $N`; donenebo aspon s pozadavkem potvrzeni prepsani souboru
N=0; for i in *.jpg; do N=$(($N+1)); mv -i "$i" `printf "%03d.jpg" $N`; doneJinak bych ti doporucoval tvuj skriptik upgradovat na
N=0; for i in *.jpg; do while [ -e `printf "%03d.jpg" $N` ];do N=$(($N+1));done; mv -i "$i" `printf "%03d.jpg" $N`; donepak budes mit jistotu, ze ti nevygeneruje jmeno uz existujiciho souboru.
První dvě varianty vyžadují ruční kontrolu a jsou tedy na nic.No, prvni variante je jenom overeni, pak staci smazat echo a jede to samo. Druha chce potvrzeni pouze v pripade nalezeni stejnych.
Třetí se jeví jako dobrý nápad ale není idempotentní, takže z 001 002 003 bude přejmenovávat na 004 005 006 a pak zas nazpátek. Chtělo by to přidat kontrolu na identická jména, a v tom případě rename ignorovat a volné jméno nehledat. Nojo, někdy se učíme "hard way"..Aha, tady jsem to trosku nedomyslel, ja to spis myslel takhle
N=0; for i in fotak/*.jpg; do while [ -e archiv/`printf "%03d.jpg" $N` ];do N=$(($N+1));done; mv -i "$i" archiv/`printf "%03d.jpg" $N`; doneAby to ignorovalo uz hotovy ciselny soubory, tak bych delal neco jako
find -type f -iname "*.jpg" -not -iregex '.*/[0-9][0-9][0-9]\.jpg' | (N=0;while read f;do while [ -e `printf "%03d.jpg" $N` ];do N=$(($N+1));done; mv -i "$f" `printf "%03d.jpg" $N`; done )Melo by to fungovat
for n in ???.jpg .jpg ?.jpg ??.jpg *????.jpg
a zbytek stejný.
No trochu mě zarazilo že je v programem u Happy fota takový problém. Já tedy dělala fotoknihu před měsícem a byla jsem spokojená jak s manipulací, tak s výsledkem a věřím, že s uploadem fotek je to podobně. Zrovna se do Happy fota chystám ted někdy během tohohle týdne, mám už spoustu fotek k vyvolání, tak se s tím uploadem ráda seznámim.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.