Debian * nur eine Datei?

  • Ersteller Ersteller Fat32Tony
  • Erstellt am Erstellt am
F

Fat32Tony

Gast
Heyy

Wenn ich bei Debian einen Pfad angebe und ein * setzte werden ja bekannterweise alle Dateien ausgewählt.
Was muss ich nun machen wenn ich allerdings nur eine Datei auswählen möchte? (am besten nach Änderungsdatum geordnet)?

also dass er bei
/Tony/asd/xyz/*.txt
aus dem Verzeichnis xyz nur EINE Datei nimmt?
 
solltest pipen:

woauchimmerdiedateihinsoll < `ls -t /Tony/asd/xyz/*.txt | head -n1`

z.b.

cat < `ls -t /tony/asd/xyz/*.txt | head -n1`

-t ist für sortierung nach Zeit, pipe an 'head' ist damit du nur das erste Ergebnis bekommst

Du kannst natürlich auch `ls -t /tony/asd/xyz/*.txt | head -n1` einfach als Parameter irgendwo für verwenden, es liefert ja nur einen Text zurück. Du möchtest eventuell auch -d verwenden damit du den gesamten Pfad bekommst und nicht nur die Datei die dort liegt.
 
Zuletzt bearbeitet:
darkarchon schrieb:
solltest pipen:

woauchimmerdiedateihinsoll < `ls -t /Tony/asd/xyz/*.txt | head -n1`

z.b.

cat < `ls -t /tony/asd/xyz/*.txt | head -n1`

-t ist für sortierung nach Zeit, pipe an 'head' ist damit du nur das erste Ergebnis bekommst

Okay Danke werd mich gleich mal ein wenig einlesen :daumen:
 
Schau noch meinen letzten Edit: -d wäre noch sinnvoll für dich. Und du kannst das so als Befehl überallhin als Parameter o.Ä. mitgeben.

z.b.

vim `ls -td /Tony/asd/xyz/*.txt | head -n1`

Statt ` ` kannst du auch $( ) verwenden:

vim $(ls -td /Tony/asd/xyz/*.txt | head -n1)

würde funktionieren und dir die Datei in vim öffnen
 
Zuletzt bearbeitet:
Das lässt sich ganz einfach mit den Werkzeugen ls (für list) und sed (stream editor) erledigen. ls bietet u.a. folgende Sortierungskriterien: -t (Datum letzter Änderung), -c (Datum letzter Änderung der Statusinformation), -turl (letzte Zugriffszeit).
Code:
ls -t /dein/pfad
Listet dir also alle Dateien im Verzeichnis /dein/pfad nach Änderungsdatum sortiert. sed kann Dateien oder Datenströme verarbeiten. Willst du nur die erste Zeile der Ausgabe eines Programms haben, sprich die zuletzt geänderte Datei, geht das so:
Code:
ls -t /dein/pfad | sed 1q
 
Zurück
Oben