Comment lister les fichiers dans un autre répertoire (non courant)?

10

Si ls répertorie le contenu du répertoire actuel, existe-t-il une commande similaire qui répertorie le contenu d'un répertoire non actuel, sans utiliser cd?

TifatulS
la source

Réponses:

12

Après avoir lssimplement tapé le chemin du répertoire que vous souhaitez lister et vous l'obtiendrez. Imaginez que vous êtes dans votre répertoire personnel mais que vous souhaitez en faire la liste /etc. Il suffit de courir ls /etcet vous l'aurez répertorié.

Daniel Yuste Aroca
la source
6

ls fera cela.

La syntaxe de lsest:

 ls flags file-or-directory-names

Pour ce que j'appelle file-or-directory-names, vous pouvez lister les fichiers dans le répertoire courant, pour avoir seulement certains fichiers listés. Par exemple, ls -l foo barlistera des informations sur juste fooet bar(sous forme longue, comme je l'ai donné le -ldrapeau). ls baz*gorépertorie tous les fichiers dont les noms commencent par bazet se terminent par go(le cas échéant).

Mais lorsque vous donnez un nom de répertoire à ls, il répertorie le contenu de ce répertoire au lieu du répertoire actuel.

Donc, pour lister le contenu de /var/log, vous exécuteriez simplement:

ls /var/log

Si vous donnez un chemin relatif pour le répertoire - c'est-à-dire un chemin qui ne commence pas par un - /alors il recherchera ce répertoire dans le répertoire courant (tout comme il recherche des fichiers). Mais il répertoriera toujours le contenu du répertoire, comme vous le souhaitez.

En remarque, vous constaterez parfois que vous ne souhaitez pas répertorier le contenu d'un répertoire, mais simplement répertorier le répertoire de la même manière qu'un fichier serait répertorié. Pour ce faire, vous pouvez passer le -ddrapeau. Par exemple, cela montre /var/logsous forme longue (pas son contenu , mais /var/loglui-même):

ls -ld /var/log
Eliah Kagan
la source
Très détaillé. Cependant, rappelez-vous que ce lsn'est pas responsable de l'extension baz*goà tous les fichiers qui commencent bazet se terminent par go- c'est le shell qui fait cela.
krlmlr
@krlmlr À droite, ls baz*goest un exemple de lsréception (potentiellement) de plusieurs arguments pour file-or-directory-names(et de cette manière est similaire à ls foo bar).
Eliah Kagan