Wie kann ich die Dateien in einem anderen (nicht aktuellen) Verzeichnis auflisten?

10

Wenn ls den Inhalt des aktuellen Verzeichnisses auflistet, gibt es einen ähnlichen Befehl, der den Inhalt eines nicht aktuellen Verzeichnisses auflistet, ohne cd zu verwenden?

TifatulS
quelle

Antworten:

12

Geben Sie lseinfach den Pfad des Verzeichnisses ein, das Sie auflisten möchten, und Sie erhalten ihn. Stellen Sie sich vor, Sie befinden sich in Ihrem Home-Verzeichnis, möchten aber eine Liste erstellen /etc. Laufen ls /etcSie einfach und Sie werden es aufgelistet bekommen.

Daniel Yuste Aroca
quelle
6

ls werde das tun.

Die Syntax für lslautet:

 ls flags file-or-directory-names

Für das, was ich anrufe, file-or-directory-nameskönnen Sie Dateien im aktuellen Verzeichnis auflisten, um nur bestimmte Dateien aufzulisten. Zum Beispiel ls -l foo barwerden Informationen zu just foound bar(in Langform, wie ich die -lFlagge gegeben habe) aufgelistet. ls baz*golistet alle Dateien auf, deren Namen mit beginnen bazund mit go(falls vorhanden) enden .

Aber wenn man einen geben Verzeichnisnamen zu ls, listet es den Inhalt dieses Verzeichnisses anstelle des aktuellen Verzeichnisses.

Um den Inhalt von aufzulisten /var/log, führen Sie einfach Folgendes aus:

ls /var/log

Wenn Sie einen relativen Pfad für das Verzeichnis /angeben, dh einen, der nicht mit einem beginnt, wird nach diesem Verzeichnis im aktuellen Verzeichnis gesucht (genau wie nach Dateien). Der Inhalt des Verzeichnisses wird jedoch weiterhin wie gewünscht aufgelistet.

Als Randnotiz stellen Sie manchmal fest, dass Sie den Inhalt eines Verzeichnisses nicht auflisten möchten , sondern nur das Verzeichnis auflisten möchten, das einer Datei entspricht. Dazu können Sie die -dFlagge übergeben. Dies zeigt zum Beispiel /var/login Langform (nicht den Inhalt , sondern sich /var/logselbst):

ls -ld /var/log
Eliah Kagan
quelle
Sehr detailiert. Denken Sie jedoch daran, dass dies lsnicht für die Erweiterung baz*goauf alle Dateien verantwortlich ist, die mit beginnen bazund mit enden go- es ist die Shell, die dies tut.
krlmlr
@krlmlr Richtig, ls baz*goist ein Beispiel für den lsEmpfang (möglicherweise) mehrerer Argumente für file-or-directory-names(und ähnelt auf diese Weise ls foo bar).
Eliah Kagan