ubuntuusers.de

mv in script - error: cannot stat

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

coolduke666

Anmeldungsdatum:
14. Oktober 2008

Beiträge: 6

hi,

habe folgendes script gemacht, welches verzeichnisses von mp3s umbenennen soll auf basis von id3-tags.

#/bin/bash

find "$@" -mindepth 3 -type d  | while read dir
do
	artistdir=$(dirname "$dir")
	firstfile=$(find "$dir" -type f -iname '*.mp3' | head -n1)
	year=$(id3info "$firstfile" | egrep ' TYER ' | sed 's/[^0-9]*//g')
	album=$(id3info "$firstfile" | egrep ' TALB ' | sed 's;=== TALB (Album/Movie/Show title): ;;')
	artist=$(id3info "$firstfile" | egrep ' TPE1 ' | sed 's;=== TPE1 (Lead performer(s)/Soloist(s)): ;;')

	# mach aus space --> underscore (mit // global substitution)
	ualbum=$(echo ${album// /_})
	uartist=$(echo ${artist// /_})
	echo mv -v "'$dir'" "'$artistdir/$year-$uartist-$ualbum'"

done

funktioniert grundsaetzlich, allerdings nur wenn man es mit script.sh | sh aufruft (daher auch das echo beim mv).

wenn man das "mv" direkt im script ausfuehren will, bekommt man den error "mv cannot statt". Es liegt wohl daran, dass manche verzeichnis ein blank haben, daher auch die anfuehrungszeichen.

wie gesagt mit dem echo | sh gehts, mv direkt im script leider nicht.

hat jemand eine idee, wie man das loesen kann?

danke & gruss

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Wie sah die Zeile denn ohne das echo aus?

coolduke666

(Themenstarter)

Anmeldungsdatum:
14. Oktober 2008

Beiträge: 6

hi

genau gleich nur ohne "echo" ☺

also so: mv -v "'$dir'" "'$artistdir/$year-$uartist-$ualbum'"

gruss

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Dann nimm da mal die einfachen Anführungszeichen alle raus. Die werden damit Teil der Datei bzw. Pfadnamen, und Dateien/Pfade mit solchen Namen gibt's nicht auf Deiner Platte.

coolduke666

(Themenstarter)

Anmeldungsdatum:
14. Oktober 2008

Beiträge: 6

hi,

super - funktioniert!!!

besten dank.

komisch ist nur, dass ich das schon probiert hatte - damals hat es nicht funktioniert! nevermind!

gruss

pinguino

Avatar von pinguino

Anmeldungsdatum:
6. Februar 2007

Beiträge: 732

Wohnort: BW

Nur al Hinweis für die Umbennenung von Dateien:

Wie oben erwähnt, gibt es Dateinamen, die ein Leerzeichen haben. Ich definiere in dem Fall die IFS Systemvariable neu. Dann hast du dir viele Probleme gespart.

IFS='
'
Antworten |