CD ins neueste Verzeichnis

0

Nicht unbedingt prügeln, sondern wenn möglich Bourne-Shell. Wie kann ich programmgesteuert zum neuesten Verzeichnis wechseln? Ich möchte das neueste Paket der Software installieren, die sich im neuesten Verzeichnis befindet. Ältere Verzeichnisse werden für ältere Systeme geführt.

Funktioniert nicht:

find /test/sysadmin/aixinstall/programs/tcpd/* -type d | xargs ls -td | head -n 1 | xargs cd


bearbeiten:

Ich habe eine Antwort, aber es ist irgendwie hässlich, also gebe ich jemandem die Chance, das Internet mit Weisheit zu zieren, anstatt mit einem Kluge.

bgStack15
quelle

Antworten:

1
cdnewest () {
    cd "$(stat -c "%Y %n" "$1"/*/ | sort -nr | head -1 | cut -d " " -f 2-)"
}

cdnewest /test/sysadmin/aixinstall/programs/tcpd

Ich gehe davon aus, dass Sie nach dem neuesten direkten Unterverzeichnis suchen , nicht irgendwo in der Hierarchie.

Glenn Jackman
quelle
Ich habe die GNU-Statistik (nicht in AIX oder Kornshell integriert), aber sie gibt einen Dateinamen zurück. Ich habe ein bisschen Probleme, das auf ein Verzeichnis zu reduzieren!
bgStack15
Ich glaube, ich habe es jetzt verstanden:cd "$( find "$1"/* -prune -type d 2>/dev/null | xargs stat -c "%Y %n" 2>/dev/null | sort -nr | head -n 1 | cut -d " " -f 2-)"
bgStack15
1
Der Schrägstrich auf meinem glob Muster begrenzt die Ergebnisse auf Verzeichnisse: Demo: CD in ein Verzeichnis mit den beiden Dateien und Unterverzeichnisse und im echo *Vergleichecho */
glenn jackman