Portál AbcLinuxu, 11. května 2024 02:38
Ve skriptu potřebuji používat pouze dvoumístný měsíc, potom pouze dvoumístný den,...
#!/bin/bash
for soubory in *jpg
do
mm=měsíc_souboru_$soubory
dd=den_souboru_$soubory
mv $soubory $mm$dd.jpg
done
Ještě tam bude pořadí souboru ve dni, ještě odladit, ale hlavně nevím, jak naplnit $mm a $dd. Předem díky.
mesic=$(stat -c %y "$soubor" | cut -c 6-7) den=$(stat -c %y "$soubor" | cut -c 9-10)Teda asi, protože těžko říci, který z časů chceš... A nyní vzdejme hold mocnému findu :o) Já bych to celé přejmenoval asi takhle:
find . -maxdepth 1 -name '*.jpg' -printf "mv '%p' %m%d.jpg\\n" | shŠťouraly rovnou upozorňuji, že obsahují-li jména souborů konce řádků nebo apostrofy, nedopadne to dobře. Nebo přes -exec, ale to už sem nebudu vypisovat, vyjde to nastejno.
find . -maxdepth 1 -name '*.jpg' -printf "mv '%p' %Tm%Td.jpg\\n" | sh
Funguje obojí, díky.
#!/bin/bash for soubor in *jpg ; do mv -i "$soubor" "$(date +%m%d -r $soubor).jpg" done
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.