Höchste Dateiversion

M

Memphis

Grünschnabel
Hallo,

wie kann ich es Realisieren automatisch eine Datei mit einer größten Zahl auszuwählen (in einem script)?

Hintergrund:
Wir haben hier in der Firma UP-Dates für linux-gz-files mit Namen wie
lnxclient-530.16.1.1.tar.gz. Hier soll er das File mit der höchsten lnxclient-*1.1.tar.gz nach /netlinux kopieren.

Ist das möglich (frage ist eigentlich unsinnig); aber wie?

Gruß Memphis
 
Du könntest die Fileliste sortieren und einfach das erste File nehmen, sofern die Namensgebung der Dateien sich nur in der Versionsnummer unterscheidet sollte das problemlos funktionieren...
Gruss
d22
 
hm also verarbeite ich die ausgabe von ls?

ls lnxclient-*.1.1.tar.gz
gibt mir natürlich alle aus die irgend eine versionsnummer haben (sortiert von 1 -> x) aus.

aber schonmal danke
 
Genau, also z.B:
Code:
ls -1 lnxclient-*.1.1.tar.gz | tail -n1
Gruss
d22
 
Hei das funktioniert Prima ;)

allerdings steht noch eine sache aus das kopieren der datei ich versuche das gerade so:

Code:
ls -1 lnxclient-*.1.1.tar.gz | tail -n 1 | xargs cp /tmp/test2/
Da wirft er mir aber aus, dass er das verzeichnis /tmp/test2/ ausgelassen hat

....

was mache ich denn damit?
 
In diesem Fall schlage ich vor einen kurzen Blick in 'man cp' zu werfen und zu überlegen was du wohin kopieren willst (und wie cp mit Verzeichnissen umgeht). ;)
Gruss
d22
 
xargs packt die Argumente ja hinten dran, deswegen steht da dann nachher:
Code:
cp /tmp/test2/ lnxclient-530.16.1.1.tar.gz
oder so, was du natürlich willst, wäre:
Code:
cp lnxclient-530.16.1.1.tar.gz /tmp/test2/

Zum Verhalten von xargs:
Code:
echo foo bar baz|xargs echo CAPSLOCK
CAPSLOCK foo bar baz

Du könntest zun Beispiel die Datei in eine Variable packen:
Code:
FILE=$(ls -1 lnxclient-*.1.1.tar.gz | tail -n 1)
cp "$FILE" /tmp/test2/
Ob das auch "direkt" mit xargs geht, weiß ich nicht. (Also das xargs die Argumentenliste quasi unshifted statt pushed. Hmpf, Denglish :/)
 
Hint:
Wenn du mal in die Manpage von xargs schnupperst, wirst du eventuell die Verwendung von Platzhaltern entdecken.
Code:
find ./ -type f |xargs -INEW echo mv NEW suffix/
mv ./file1 suffix/
mv ./file2 suffix/

Gruß Wolfgang
 
vielen dank!

ich sehe wieder: ich muss mehr lernen in die man pages zu gucken als google zu nutzen

danke nochmal, werds moin testen
 
Vielen lieben Dank an Alle!

@Gott_in_schwarz
Ich habe dine Version mit der Variable genutzt... hätte man eigentlich auch selbst drauf kommen können. ;)

Also, danke nochmal jetzt klappt hier alles echt super ;)
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

openSSH: SFTP / FTPS

Dateien selektieren und zählen

Maximale Schreibperformance auf SD/USB

Gruppe mitsamt allen Usern löschen?

Zurück
Oben