Dateien gegebener Pfade auflisten

27/06/2008 - 09:23 von Roman Maire | Report spam
Hallo Zusammen

Ich beiss mir gerade an einem Problem die Zàhne aus, und bin auch nicht
so der Shell Scripting Profi. Ich hab Eine Datei, in der Pfade stehen.
Nun müsste ich in einer anderen Datei die Inhalte dieser Verzeichnisse
aufgelistet haben, mit komplettem Pfad. Erschwerend kommt noch dazu,
dass manche Pfade "kaputt" sind, das heisst, ich muss alle "//" mit "/"
ersetzen. So ein Pfad sieht etwa so aus:

/mnt/backup/files/current//2008-01-01@02:11:07/someuser

Im Moment übe ich mit folgendem Codestück rum:

while read dir
do
echo $dir | sed 's/\/\//\//g' | xargs -0 -I '{}' find '{}' -maxdepth 1
-type f -print >> filelist.txt
done < /var/log/dirlist.txt

Dabei bekomm ich aber folgende Fehlermeldung:


find:
/mnt/backup/files/current//2008-01-01@02:11:07/someuser/mnt/backup/files/current//2008-01-01@02:11:07/someuser:
No such file or directory

Führe ich den selben Befehl auf der Kommandozeile aus, gehts wunderbar.
Wenn ich das Codefragment mit ls statt mit find ausprobiere hab ich das
selbe Problem.

Weiss jemand Rat? Danke im Voraus.

Gruss:
Roman
 

Lesen sie die antworten

#1 Manuel Reimer
27/06/2008 - 10:38 | Warnen spam
Roman Maire wrote:
Erschwerend kommt noch dazu,
dass manche Pfade "kaputt" sind, das heisst, ich muss alle "//" mit "/"
ersetzen.



Musst du nicht, denn mehrere Slashes hintereinander macht das System
automatisch "platt".

Ohne das sed kannst du dir dann auch xargs schenken und das in Etwa so
umrüsten:

while read dir; do
find "$dir" -maxdepth 1 -type f -print >> filelist.txt
done < /var/log/dirlist.txt

Keine Ahnung ob das besser geht --> Ausprobieren.

CU

Manuel

www.jetzt-abwaehlen.de Wàhlen gehen 2009! Ein Aufruf etwas zu àndern.

Die letzte Stimme, die man hört, bevor die Welt untergeht, wird die
eines Experten sein, der versichert, das sei gar nicht möglich.

Ähnliche fragen