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?

7voto

Marisha Punkte 646

Nur eine Alternative zu

ls -d "$PWD/"* 

um das festzustellen * ist die Schalenausdehnung, also

echo "$PWD/"*

würde dasselbe bewirken (der Nachteil ist, dass man nicht -1 durch neue Zeilen zu trennen, nicht durch Leerzeichen).

6voto

Thyag Punkte 1063

Wenn Sie eine Liste aller Dateien im aktuellen Verzeichnis sowie in den Unterverzeichnissen benötigen

find $PWD -type f

Wenn Sie eine Liste aller Dateien nur im aktuellen Verzeichnis benötigen

find $PWD -maxdepth 1 -type f

5voto

kenorb Punkte 134883

fd

Verwendung von fd (alternativ zu find ), verwenden Sie die folgende Syntax:

fd . foo -a

Wo . ist das Suchmuster und foo ist das Root-Verzeichnis.

Um z.B. alle Dateien in etc rekursiv, laufen: fd . /etc -a .

-a , --absolute-path Absolute statt relative Pfade anzeigen

2voto

geosmart Punkte 370

Jar-Datei rekursiv suchen und absoluten Pfad ausgeben

`ls -R |grep "\.jar$" | xargs readlink -f`                                                                                                                                                                                                                                                               

/opt/tool/dev/maven_repo/com/oracle/ojdbc/ojdbc8-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/ons-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/oraclepki-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/osdt_cert-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/osdt_core-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/simplefan-19.3.0.0.jar
/opt/tool/dev/maven_repo/com/oracle/ojdbc/ucp-19.3.0.0.jar

2voto

Daniel Kobe Punkte 8499

Dies funktioniert am besten, wenn Sie eine dynamische Lösung wünschen, die gut in einer Funktion funktioniert

lfp ()
{
  ls -1 $1 | xargs -I{} echo $(realpath $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