Linux: skript na přejmenování souborů
Moderátoři: zdespi, Moderátoři
- Barbar
- Mírně pokročilý

- Příspěvky: 154
- Registrován: pon dub 25, 2005 11:24 pm
- Bydliště: Praha
- Kontaktovat uživatele:
Linux: skript na přejmenování souborů
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.
Co takhle je prejmenovavat podle aktualniho data a casu? To by ti nestacilo? (printf parametr ted tezko vymyslim).
Pokud ano:BEZ ZARUKY!!!!
Pokud ano:
Kód: Vybrat vše
DM=`date +%y%m%d%H%M%S`
cp * *$DMPrivate (old) + CCU stats.
- Barbar
- Mírně pokročilý

- Příspěvky: 154
- Registrován: pon dub 25, 2005 11:24 pm
- Bydliště: Praha
- Kontaktovat uživatele:
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
#!/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
-
vejpuste
- BOINC Guru

- Příspěvky: 954
- Registrován: čtv čer 16, 2005 11:00 am
- Bydliště: Praha Zbraslav
- Kontaktovat uživatele:
Re: Linux: skript na přejmenování souborů
Coz takhle zkusit tohle :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.
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
Libor
- Barbar
- Mírně pokročilý

- Příspěvky: 154
- Registrován: pon dub 25, 2005 11:24 pm
- Bydliště: Praha
- Kontaktovat uživatele:
Re: Linux: skript na přejmenování souborů
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.vejpuste píše: Coz takhle zkusit tohle :Pripadne si format nazvu uprav podle sveho : man findKó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
Libor
-
vejpuste
- BOINC Guru

- Příspěvky: 954
- Registrován: čtv čer 16, 2005 11:00 am
- Bydliště: Praha Zbraslav
- Kontaktovat uživatele:
Re: Linux: skript na přejmenování souborů
Jak primitivni, lec ucinne ....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.
Libor