Avatar billede computopic Nybegynder
29. juli 2003 - 15:19 Der er 26 kommentarer og
1 løsning

et lille bash script til at omdøbe nogle filer..

Nogen der kan en kode løsning på et #!/bin/bash script der kan omdåbe alle filer i et givent dir på følægende måde:

fra: log
til: log.20030703
Avatar billede lap Nybegynder
29. juli 2003 - 15:24 #1
find . -type f -exec mv {} {}.22030703 \;

Vil omdøbe samtlige filer i kataloget hvor du står, således at de får tilføjet .20030703
Avatar billede lap Nybegynder
29. juli 2003 - 15:24 #2
incl. underkataloger!
Avatar billede computopic Nybegynder
29. juli 2003 - 15:25 #3
Den skal selv indsætte datoen.. kan du også få den til det?
Avatar billede lap Nybegynder
29. juli 2003 - 15:26 #4
ja, vent....
Avatar billede lap Nybegynder
29. juli 2003 - 15:28 #5
find . -type f -exec mv {} {}.`date +'%Y%m%d'` \;

bemærk omvendte ` omkring datofunktionen
Avatar billede computopic Nybegynder
29. juli 2003 - 15:40 #6
[root@localhost ssk]# find -type f -exec mv {} {}.´date +'%Y%m%d'´
find: manglende parameter til '-exec'
Avatar billede lap Nybegynder
29. juli 2003 - 15:42 #7
mangler \; - og dine "plinger" vender den forkerte vej - skal være shiftet tast til højre for + og ? - muligvis laves de med tasten efterfulgt af mellemrum
Avatar billede computopic Nybegynder
29. juli 2003 - 15:42 #8
Der manglede lige et par tegn.. menne her vil jeg mene er skrevet rigtigt.. men virker ikke..
[root@localhost ssk]# find -type f -exec mv {} {}.´date +'%Y%m%d'´\;
find: manglende parameter til '-exec'
Avatar billede lap Nybegynder
29. juli 2003 - 15:43 #9
Jeg har klippet det fra min egen redhat maskine hvor det er lavet - kik på plingerne
Avatar billede computopic Nybegynder
29. juli 2003 - 15:45 #10
Tjek denne linje: [root@localhost ssk]# find -type f -exec mv {} {}.`date +'%Y%m%d'`\;
find: manglende parameter til '-exec'
Er der fejl i den? j kan ikke få øje på den..
Avatar billede lap Nybegynder
29. juli 2003 - 15:47 #11
ja, et mellemrum i slutningen ` \;
Avatar billede computopic Nybegynder
29. juli 2003 - 15:49 #12
aah.. *S* takker.. så virker det..
Avatar billede lap Nybegynder
29. juli 2003 - 15:50 #13
velbekomme :-)
Avatar billede computopic Nybegynder
29. juli 2003 - 15:52 #14
øh.. lige en lille ting.. den skal ikke omdøbe filer der allerede har fået dato.. den skal kun omdøbe filer der *.
Avatar billede lap Nybegynder
29. juli 2003 - 15:59 #15
Filer der ikke har fået en dato - er de kendetegnet ved, at de ikke har et "." i navnet? Eller hvordan ser man forskel?
Avatar billede computopic Nybegynder
30. juli 2003 - 09:46 #16
Præcis
Avatar billede lap Nybegynder
30. juli 2003 - 10:16 #17
Ikke længere en one-liner:

#!/bin/bash

cd <til det pÃldende katalog>
find . -type f -print | grep -v "\." | while read fil
do
  mv $fil ${fil}.date +'%Y%m%d'`\;
done

exit 0
Avatar billede computopic Nybegynder
30. juli 2003 - 10:33 #18
Jeg har kopiret scriptet direkte ind.. i den nyoprettet rotate fil som har sørselsretigehder.. men den giver fejl..
[root@localhost ssk]# ./rotate
./rotate: line 6: unexpected EOF while looking for matching ``'
./rotate: line 10: syntax error: unexpected end of file
Avatar billede lap Nybegynder
30. juli 2003 - 10:35 #19
Ups, det var en af dine find kommandoer jeg klippede fra - nu skulle det være i orden.

#!/bin/bash

cd <til det pågdende katalog>
find . -type f -print | grep -v "\." | while read fil
do
  mv $fil ${fil}.`date +'%Y%m%d'`
done

exit 0
Avatar billede computopic Nybegynder
30. juli 2003 - 10:51 #20
Nu giver scriptet ikke fejl.. men intet sker med filernes navn..
Arbejdskataloget er /ssk som ligger i roden.

[root@localhost ssk]# ls
Floppy  Hjem  rotate
[root@localhost ssk]# ./rotate
[root@localhost ssk]# ls
Floppy  Hjem  rotate
[root@localhost ssk]#
har rettet linjen: cd <til det pågdende katalog> til cd /ssk
Avatar billede lap Nybegynder
30. juli 2003 - 10:58 #21
Det skyldes, at alle filernes navne starter med "." - og hvis jeg ser bort fra dem, så får det galt... - hermed testet:

#!/bin/bash

cd /skk
find . -type f -print | grep -v ".\.." | while read fil
do
  mv $fil ${fil}.date +'%Y%m%d'`\;
done

exit 0
Avatar billede computopic Nybegynder
30. juli 2003 - 11:16 #22
[root@localhost ssk]# ./rotate
./rotate: line 3: cd: /skk: Ingen sådan fil eller filkatalog
./rotate: line 6: unexpected EOF while looking for matching ``'
./rotate: line 9: syntax error: unexpected end of file
Avatar billede computopic Nybegynder
30. juli 2003 - 11:16 #23
Min fejl.. 2 sec..
Avatar billede computopic Nybegynder
30. juli 2003 - 11:18 #24
Det virker ikke rigtig..
[root@localhost ssk]# ./rotate
./rotate: line 7: unexpected EOF while looking for matching ``'
./rotate: line 11: syntax error: unexpected end of file
Avatar billede computopic Nybegynder
30. juli 2003 - 11:20 #25
Nu virker det!!
Avatar billede computopic Nybegynder
30. juli 2003 - 11:21 #26
Det skyldes at der var fejl i mv linjen.. tog en af de linjer du havde skrevet tidligere.. og så virkede det.. takker for tånmodigheden..
Avatar billede lap Nybegynder
30. juli 2003 - 13:18 #27
Godt - beklager bøvlet :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester