web-dev-qa-db-fra.com

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

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

8
TifatulS

Après ls, tapez simplement le chemin du répertoire que vous voulez lister et vous l’obtiendrez. Imaginez que vous êtes dans votre répertoire personnel mais que vous souhaitez répertorier /etc. Il suffit d’exécuter ls /etc et vous le trouverez dans la liste.

10
Daniel Yuste Aroca

ls le fera.

La syntaxe pour ls est la suivante:

 ls flagsfile-or-directory-names

Pour ce que j'appelle file-or-directory-names, vous pouvez lister les fichiers dans le répertoire en cours, pour ne lister que certains fichiers. Par exemple, ls -l foo bar listera des informations uniquement sur foo et bar (sous forme longue, comme je l’ai indiqué avec le drapeau -l). ls baz*go liste tous les fichiers dont le nom commence par baz et se termine par go (le cas échéant).

Mais lorsque vous attribuez 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 devez simplement lancer:

ls /var/log

Si vous donnez un chemin relatif pour le répertoire - c’est-à-dire un chemin qui ne commence pas par un /--, il recherchera ce répertoire dans le répertoire en cours (juste comme il cherche des fichiers). Mais il listera quand même le contenu du répertoire, comme vous le souhaitez.

En remarque, vous pourriez parfois ne pas vouloir lister le contenu d'un répertoire, mais simplement lister le répertoire de la même manière qu'un fichier serait répertorié. Pour ce faire, vous pouvez passer l'indicateur -d. Par exemple, ceci affiche /var/log sous forme longue (pas son contenu , mais /var/log lui-même):

ls -ld /var/log
4
Eliah Kagan