Stránka 1 z 1

Linux: skript na přejmenování souborů

Napsal: čtv srp 03, 2006 7:23 pm
od Barbar
Nepoužíváte někdo nějaký skript, který by přejmenoval soubory v adresáři podle data a času jejich poslední změny? Nějak se mi to nedaří vymyslet ani nikde nalézt.

Napsal: čtv srp 03, 2006 7:54 pm
od Bubak
Co takhle je prejmenovavat podle aktualniho data a casu? To by ti nestacilo? (printf parametr ted tezko vymyslim).
Pokud ano:

Kód: Vybrat vše

DM=`date +%y%m%d%H%M%S`
cp * *$DM
BEZ ZARUKY!!!!

Napsal: čtv srp 03, 2006 10:28 pm
od Barbar
No nakonec jsem si to vyřešil takto:

#!/bin/bash
echo
echo "START SKRIPTU, ktery zkopiruje obrazky a video (*.jpg, *.JPG, *.avi, *.AVI) z DIGI FOTOAPARÁTU (media/CANON_DC/dcim/ a podadresare) do ~/obrazky/stazeno a tam je prejmenuje podle data jejich vyfoceni."

mkdir ~/obrazky/stazeno

cd /media/CANON_DC/dcim/
for file in `ls` ; do
if [ -d $file ] ; then
echo Nasel jsem adresar $file, kopiruji z nej soubory *.jpg, *.JPG, *.avi, *.AVI.
cp -p -v $file/*.jpg ~/obrazky/stazeno
cp -p -v $file/*.avi ~/obrazky/stazeno
cp -p -v $file/*.JPG ~/obrazky/stazeno
cp -p -v $file/*.AVI ~/obrazky/stazeno
elif [ -f $file ] ; then
echo KOPIRUJI SOUBORY Z ADRESARE /media/CANON_DC/dcim/.
echo SPRAVNE BY ZDE ZADNY SOUBOR NEMEL BYT.
cp -p -v $file ~/obrazky/stazeno
fi
done

cd ~/obrazky/stazeno
for file in `ls *.jpg` ; do
if [ -f $file ] ; then
new_name=`find $file -printf '%TY%Tm%Td-%TH%TM%TS\n'`.jpg
cp -p -v $file $new_name
rm -f -v $file
elif [ -d $file ] ; then
echo V PRACOVNIM ADRESARI JE DALSI PODADRESAR!!!
fi
done
for file in `ls *.avi` ; do
if [ -f $file ] ; then
new_name=`find $file -printf '%TY%Tm%Td-%TH%TM%TS\n'`.avi
cp -p -v $file $new_name
rm -f -v $file
elif [ -d $file ] ; then
echo V PRACOVNIM ADRESARI JE DALSI PODADRESAR!!!
fi
done
for file in `ls *.JPG` ; do
if [ -f $file ] ; then
new_name=`find $file -printf '%TY%Tm%Td-%TH%TM%TS\n'`.jpg
cp -p -v $file $new_name
rm -f -v $file
elif [ -d $file ] ; then
echo V PRACOVNIM ADRESARI JE DALSI PODADRESAR!!!
fi
done
for file in `ls *.AVI` ; do
if [ -f $file ] ; then
new_name=`find $file -printf '%TY%Tm%Td-%TH%TM%TS\n'`.avi
cp -p -v $file $new_name
rm -f -v $file
elif [ -d $file ] ; then
echo V PRACOVNIM ADRESARI JE DALSI PODADRESAR!!!
fi
done

echo "KONEC SKRIPTU"
echo

Re: Linux: skript na přejmenování souborů

Napsal: čtv srp 03, 2006 10:30 pm
od vejpuste
Barbar píše:Nepoužíváte někdo nějaký skript, který by přejmenoval soubory v adresáři podle data a času jejich poslední změny? Nějak se mi to nedaří vymyslet ani nikde nalézt.
Coz takhle zkusit tohle :

Kód: Vybrat vše

find . -type f -printf "mv %p %TY%Tm%Td%TH%TM%TS\n" > /tmp/delej.sh
. /tmp/delej.sh
/bin/rm /tmp/delej.sh
Pripadne si format nazvu uprav podle sveho : man find
Libor

Re: Linux: skript na přejmenování souborů

Napsal: čtv srp 03, 2006 10:47 pm
od Barbar
vejpuste píše: Coz takhle zkusit tohle :

Kód: Vybrat vše

find . -type f -printf "mv %p %TY%Tm%Td%TH%TM%TS\n" > /tmp/delej.sh
. /tmp/delej.sh
/bin/rm /tmp/delej.sh
Pripadne si format nazvu uprav podle sveho : man find
Libor
A já tolik času neúspěšne přemýšlel, jak využít výstup z "find -type f -printf ...". Dík. Až se k tomu znovu dostanu, vyzkouším.

Re: Linux: skript na přejmenování souborů

Napsal: pát srp 04, 2006 12:49 pm
od vejpuste
Barbar píše:A já tolik času neúspěšne přemýšlel, jak využít výstup z "find -type f -printf ...". Dík. Až se k tomu znovu dostanu, vyzkouším.
Jak primitivni, lec ucinne ....
Libor