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?
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.
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