Jak mogę wyświetlić listę plików w innym (nieaktualnym) katalogu?

10

Jeśli ls wyświetla zawartość bieżącego katalogu, czy istnieje podobne polecenie, które wyświetla zawartość katalogu nieaktualnego, bez korzystania z cd?

TifatulS
źródło

Odpowiedzi:

12

Po lsprostu wpisz ścieżkę katalogu, który chcesz wyświetlić, a otrzymasz ją. Wyobraź sobie, że jesteś w swoim katalogu domowym, ale chcesz je wymienić /etc. Po prostu uruchom, ls /etca pojawi się na liście.

Daniel Yuste Aroca
źródło
6

ls zrobi to.

Składnia lsjest następująca:

 ls flags file-or-directory-names

W przypadku tego, co dzwonię file-or-directory-names, możesz wyświetlić listę plików w bieżącym katalogu, aby wyświetlić tylko niektóre pliki. Na przykład ls -l foo barwyświetli informacje o sprawiedliwym fooi bar(w długiej formie, jak podałem -lflagę). ls baz*gowyświetli listę wszystkich plików, których nazwy zaczynają się bazi kończą go(jeśli istnieją).

Ale kiedy dajesz nazwę katalogu do ls, to wyświetla zawartość tego katalogu zamiast bieżącego katalogu.

Aby wyświetlić zawartość /var/log, wystarczy uruchomić:

ls /var/log

Jeśli podasz ścieżkę względną do katalogu - to znaczy taką, która nie zaczyna się od - /wtedy będzie szukał tego katalogu w bieżącym katalogu (tak jak szuka plików). Ale nadal będzie wyświetlać zawartość katalogu, jak chcesz.

Na marginesie, czasami może się okazać, że nie chcesz wyświetlać zawartości katalogu, ale po prostu katalog taki sam, jak plik na liście. Aby to zrobić, możesz przekazać -dflagę. Na przykład pokazuje to /var/logw długiej formie (nie jej zawartość , ale /var/logsama):

ls -ld /var/log
Eliah Kagan
źródło
Bardzo szczegółowe. Pamiętaj jednak, że lsnie jest odpowiedzialny za rozszerzenie baz*godo wszystkich plików, które zaczynają się bazi kończą go- to powłoka to robi.
krlmlr
@krlmlr Racja, ls baz*gojest przykładem lsotrzymywania (potencjalnie) wielu argumentów za file-or-directory-names(i w ten sposób jest podobny do ls foo bar).
Eliah Kagan