Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Dateien verschieben + Zeitstempel anhängen mit Hilfe einer for - Schleife
könnt ihr mir bitte sagen warum meine for - Schleife nicht funktioniert?
Code:
timestamp=$( date +%d.%m.%y_%H:%M:%S )
for file in 'ls -lrt *00.txt | awk '{print $9}''
do
echo $file
mv $file /archive_aktuell/$file_$timestamp
done
Mit dieser for - Schleife möchte ich alle Dateien aus einem Verzeichniss, die die Endung *00.txt haben, in ein Archiv kopieren und dabei einen Zeitstempel anhängen.
Ist die Struktur meines mv - Befehls falsch oder gibt es bei einer Schleife eine Besonderheit, die ich beachten muss?
Über verschiedene Lösungsansätze würde ich mich freuen
Danke für die Antwort und entschuldige meine späte Reaktion
Das sind Beispieldateien die ich mit meiner for - Schleife verschieben und gleichzeitig umbennen möchte (Zeitstempel anhängen)
-rw------- 1 root root 0 Mar 6 08:59 testdatei_2425266200.txt
-rw------- 1 root root 0 Mar 6 08:59 testdatei_2925266200.txt
Und diese Fehlermeldung tritt bisher auf...wie ich mir schon gedacht habe ist mein mv - Befehl falsch aber ich komm einfach nicht darauf wie ich diesen verändern muss -.-
testdatei_2425266200.txt
mv: cannot rename testdatei_2425266200.txt to /archive_aktuell/06.03.13_08:59:40: No such file or directory
testdatei_2925266200.txt
mv: cannot rename testdatei_2925266200.txt to /archive_aktuell/06.03.13_08:59:40: No such file or directory
Meine for - Schleife sieht nun so aus:
Code:
timestamp=$( date +%d.%m.%y_%H:%M:%S )
for file in $(ls -lrt *00.txt | awk '{print $9}')
do
echo $file
mv $file /archive_aktuell/$file_$timestamp
done
Kann mir jemand bitte sagen was mein Fehler ist? Ich mach da schon eine Weile rum aber komm einfach nicht dahinter^^
Mein Problem ist nun, dass das Verschieben und Umbennen nur teilweise funtkioniert:
/data/tmp/uebung/archive_aktuell
-rw------- 1 root root 0 Mar 6 08:59 06.03.13_11:40:41
Es wurde nur eine Datei verschoben und wie man sehen kann heißt diese Datei nur $timestamp anstatt von $file_$timestamp
Kann mir das jemand erklären? Soweit ich weiß müsste meine for - Schleife laufen bis $(ls -lrt *00.txt | awk '{print $9}') keine Dateien mehr ausgibt (sprich alle Dateien auf die das zutrifft wurden verschoben) oder nicht?
PS: Ich befinde mich im Verzeichniss /data/tmp/uebung wenn ich meine for - Schleife ausführe, also ein weiterer Verzeichniss - Fehler schließe ich aus!
Oder fehlende Klammern - der Dateiname enthaelt nur einen Unterstich, den vom timestamp, d.h., die bash interpretiert 'file_' als Variablenname. ${file}_${timestamp} sollte da weiterhelfen - oder eben Sproedes Vorschlag ueber 'find'.
Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql: Hallo
Eventuell kann mir jemand bei meinem Problem helfen. Ich habe mich irgendwie total verrannt und komme nicht weiter.
Die folgende Beschreibung dient...
rsync: Quelle größer als Ziel => "Archiv" aufteilen/splitten: Hallo zusammen,
demnächst wird ein NAS eintreffen, das ich noch auf (externe) USB-Platten sichern möchte. Auf dem NAS (Synology DiskStation) ist...