Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl zum Tarn :)
Hallo Zusammen,
erstmal ein gutes neues Jahr!!!
ich benötige ein Befehl, den ich einfach nicht hinbekomme.
Dumm..
Ich habe einen große Anzahl von Ordner, davon möchte ich die neusten 10 (vom Datum gesehen) in einen anderen Ordner als Ordner1.tar ablegen bzw. Ordern2.tar...
Wie geht das denn???
Vielen Dank im Vorraus!
Mit einem Shell-Skript. ;)
find und tar sind dein Freund. :)
auf die befehle bin ich auch schon gefunden...
aber die kombi ist mir nicht gelungen :(
Was hast Du denn versucht?
ich hab den befehl ls -c versucht.
an allem anderen bin ich gescheitert...
Vielleicht hilft Dir das bei der weiteren Suche nach der Lösung:
for f in $(ls -1rtd */ | tail -n10); do echo mach was mit $f; done
for f in $(ls -1rtd */ | tail -n2); tar -c f$ bilder.tar; done
danke die ausgabe geht ja schonmal prima!!!
das hab ich jetzt versucht...
Da fehlt das "do" und bei "$f" hast du die Zeichen vertauscht.
Mal angenommen die beiden neusten Ordner heissen "dir_1" und "dir_2": Wie würden dann die beiden Befehle mit "tar" aussehen sollen?
for f in $(ls -1rtd */ | tail -n2); (tar -cvf $f.tar $f); done
so sollte er doch für jeden ordner eine tar anlegen oder nicht??? *grr*
Das geht auf alle Fälle:
tar -cvf Bingo.tar.gz Bingo/
was mach ich nun noch falsch?
Der "/" Am Ende störte noch.. Den habe ich jetzt mit "sed" gelöscht. Wenn folgendes klappt, einfach das "echo" entfernen:
for f in $(ls -1rtd */ | sed 's/\///g' | tail -n2); do echo tar -cvf "$f".tar.gz "$f/"; donePS: Bei Ordnern mit Leerzeichen darin, wird es so nicht funktionieren.
wir kommen dem ja immer näher :)
vielen dank für Deine Bemühungen.
Allerdings heißt der Ordner "Irgenwas und Irgendwas"
und die leerzeichen werden dann so:
tar -cvf Irgendwas.tar Irgendwas/
tar -cvf und.tar und/
tar -cvf Irgendwas.tar Irgendwas/
bekommst das noch hin???
Wär echt perfekt!!!!
Sicher.. ;)
Im Nachhinein wäre es mit "find" wohl einfacher gewesen.. aber egal:
OLDIFS=$IFS; IFS=$'\n'; for f in $(ls -1rtd */ | sed 's/\///g' | sed 's/ /\\ /g' |tail -n2); do echo tar -cvf "$f".tar.gz "$f/"; done; IFS=$OLDIFS
Grrr warum geht's nicht?
debian@:/data/superbilder$ OLDIFS=$IFS; IFS=$'\n'; for f in $(ls -1rtd */ | sed 's/\///g' | sed 's/ /\\ /g' |tail -n1); do echo tar -cvf "$f".tar.gz "$f/"; done; IFS=$OLDIFS
tar -cvf Bingoabend\ 29.12.06.tar.gz Bingoabend\ 29.12.06/
das ist nach ner sekunde fertig und es wurde kein .tar erstellt why???
Der Gestreifte
03.01.07, 12:25
das ist nach ner sekunde fertig und es wurde kein .tar erstellt why???Weil "ls" gern ein alias ist und die Ausgabe (samt der dann enthaltenen Steuersequenzen) nach irgendwohin umgeleitet dann unsinnig wird.
Probier mal "/bin/ls -1rtd" statt "ls -1rtd */".
Du musst das "echo" entfernen!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.