Problem med at omdøbe folder navn i bash
Jeg har et problem med at omdøbe folder navne ved hjælp af mv kommandoen!
Efter et raid crash er det lykkedes mig at få reddet en hel del filer ~28GB som nu ligger i omkring 7300 foldere som er navngivet ved noget der ligner : '#10093854' ..
Ved en fejltagelse fik jeg omdøbt en hel del (flere hundrede) af dem til noget der ligner:
'#10093854.xls.' ..ikke særligt heldigt
Og nu vil jeg gerne kunne omdøbe dem tilbage til det oprindelige navn ved at fjerne '.xls.' fra navnet.
Jeg har forsøgt med følgende:
mv #10093854.xls. #10093854 ---> mv: missing file operand
mv /#10093854.xls. /#10093854 ---> mv: kan ikke udføre stat() '/#1005727.xls.': No such file or directory
mv "#10093854.xls." "#10093854" ---> mv: kan ikke udføre stat() '#1005727.xls.': No such file or directory
mv "/#10093854.xls." "/#10093854" ---> mv: kan ikke udføre stat() '/#1005727.xls.': No such file or directory
Jeg har gentaget ovenstående samt flere andre kombineret med option -T og flere andre, uden at det er lykkedes.
Oprindeligt fik jeg omdøbt filerne med en kommando som:
mv $navn "$2/$navn.$3"
i forbindelse med et bash script som jeg bruger til at flytte og omdøbe filer med, men jeg fik kørt scriptet med forkerte parametre!
Hvad gør jeg galt?
--Palle
- Log in to post comments
Kommentarer2
Re: Problem med at omdøbe folder navn i bash
Du har gang i det rigtige, men vender dit escape slash forkert.
/ er rodfilsystemet, dvs en sti
\ escaper mystiske tegn.
Du kan også indkapsle dem i "gåseøjne" så kan der stå alle mulige mystiske tegn imellem.
EDIT:
Siden du kan få stat() fejlen går jeg ud fra at du ikke har gjort dig gode venner med terminalens konge Tabulator. Når du Tab completer en kommando får du aldrig dumme"could not stat()..." fejl
Tak for svaret
Jeg kender
Tak for svaret
Jeg kender godt Tab complete, men tænkte ikke lige på at bruge det her, men det bragte mig faktisk på rette kurs.
jeg fandt en måde som virker:
#! /bin/bash
mydirs=(*)
for name in ${mydirs[@]} ; do
newname=${name%$1}
if [ $name != $newname ] ; then
mv "${name} /" "${newname}"
fi
done
Den forløsende kommando var:
mv \#1005727.xls.\ / \#1005727
som virker!
--Palle