423 Stimmen

Wie kann ich unter Linux eine Liste von Dateien mit ihrem absoluten Pfad erstellen?

Ich schreibe ein Shell-Skript, das Dateipfade als Eingabe akzeptiert.

Aus diesem Grund muss ich rekursive Dateilisten mit vollständigen Pfaden erstellen. Zum Beispiel, die Datei bar hat den Pfad:

/home/ken/foo/bar

aber, soweit ich sehen kann, sind beide ls y find geben nur relative Pfadangaben an:

./foo/bar   (from the folder ken)

Es scheint eine offensichtliche Anforderung zu sein, aber ich kann nichts in der find o ls man-Seiten.

Wie kann ich eine Liste der Dateien in der Shell einschließlich ihrer absoluten Pfade erstellen?

1voto

Mike Behr Punkte 25

Hier ist ein Beispiel, das eine Liste ohne einen zusätzlichen Punkt ausgibt und das auch zeigt, wie man nach einer Dateiübereinstimmung sucht. Ich hoffe, das hilft:

find . -type f -name "extr*" -exec echo `pwd`/{} \; | sed "s|\./||"

1voto

rxw Punkte 1992
lspwd() { for i in $@; do ls -d -1 $PWD/$i; done }

0voto

linux.cnf Punkte 323

Rekursive Dateien können in Linux auf viele Arten aufgelistet werden. Hier zeige ich ein Skript, das alle Logs von Dateien (nur Dateien) aus /var/log/ und prüfen Sie dann, welche Logs-Datei kürzlich einen Eintrag gemacht hat.

Erstens:

find /var/log/ -type f  #listing file recursively 

Zweitens:

for i in $(find $PWD -type f) ; do cat /dev/null > "$i" ; done #empty files recursively 

Dritte Verwendung:

ls -ltr $(find /var/log/ -type f ) # listing file used in recent

Hinweis: Für den Verzeichnisstandort können Sie auch $PWD anstelle von /var/log .

0voto

Michael Yan Punkte 11

Wenn Sie keine symbolischen Links haben, können Sie versuchen

tree -iFL 1 [DIR]

-i lässt tree die Dateinamen in jeder Zeile ausgeben, ohne die Baumstruktur.

-f lässt tree den vollständigen Pfad jeder Datei ausgeben.

-L 1 vermeidet Baum aus Rekursion.

-1voto

Albert Punkte 1
ls -1 | awk  -vpath=$PWD/ '{print path$1}'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X