• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] bash find mit whitespaces im Dateinamen

pospiech

Hacker
Bei mir schlägt ein find auf ein Verzeichnis immer fehl, wenn es ein Leerzeichen enthält.

Code:
FROMDIR="/media/windows/Dokumente und Einstellungen"
if [ -d "$FROMDIR" ]  # Test if target directory exists.
then
else
	echo "> Verzeichnis $FROMDIR existiert nicht"
fi

liefert mir ein
Verzeichnis /media/windows/Dokumente existiert nicht

Wie korrigiere ich den test, so dass es funktioniert?
 

rolle

Guru
Ich kann mir nicht helfen, bei mir wird das Script fehlerfrei ausgeführt.
Code:
roland@rolle:~> sh test.sh
> Verzeichnis /media/windows/Dokumente und Einstellungen existiert nicht
roland@rolle:~> cat test.sh
#!/bin/bash

FROMDIR="/media/windows/Dokumente und Einstellungen"
if [ -d "$FROMDIR" ]  # Test if target directory exists.
then
echo "> Verzeichnis $FROMDIR existiert"
else
   echo "> Verzeichnis $FROMDIR existiert nicht"
   fi
 

Escho

Advanced Hacker
Bei mir funktioniert es problemlos (wie bei rolle).
Code:
#! /bin/bash

FROMDIR="/media/windows/Dokumente und Einstellungen"
#FROMDIR="/etc"
if [ -d "$FROMDIR" ]
then
kdialog --msgbox "ok"
else
   echo "> Verzeichnis $FROMDIR existiert nicht"
fi
kdialog --msgbox "ende"
Mit dem Ergebnis:
Code:
> Verzeichnis /media/windows/Dokumente und Einstellungen existiert nicht

Edgar
 
OP
P

pospiech

Hacker
Der Fehler lag in der Parameterübergabe für die Funktion in der das ausgeführt wird:
Code:
backup_Files ()
{
 	FROMDIR=$1

dabei wurde schon alles hinter dem Leerzeichen geschluckt.
 
Oben