Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/10/2021, à 20:07

Ni1383

echo pour lister fichiers dans un répertoire qui n'est pas le courant

Bonjour,

j'aimerais lister les fichiers normaux dans un premier temps et les fichiers cachés (uniquement) dans un second temps d'un répertoire qui n'est pas le répertoire courant.
J'aimerais n'utiliser que la commande "echo".

Pour lister les fichiers normaux du répertoire courant, j'y arrive avec "echo *" Mais je n'arrive pas à affecter la commande au répertoire voulu(qui est contenu dans le répertoire courant). Si je tape "echo * répertoire_voulu" cela affiche le contenu du répertoire courant suivi du nom du répertoire voulu.

Pour lister les fichiers cachés, j'ai trouvé "echo * .*" mais cela n'affiche pas uniquement les fichiers cachés mais aussi les fichiers normaux. Là encore, uniquement pour le répertoire courant.

Merci de m'aider.

Hors ligne

#2 Le 21/10/2021, à 20:17

Watael

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

* ne liste pas que les fichiers normaux; ça liste aussi les répertoires (qui sont une autre sorte de fichiers, mais peu importe).

il n'est pas possible d'afficher uniquement le nom des fichiers avec un simple echo*
il faut passer par une boucle et un Remplacement de paramètres.
il y aura toujours un echo, mais pas tout seul. smile

--
* à moins de changer de répertoire courant !

Dernière modification par Watael (Le 21/10/2021, à 20:18)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 21/10/2021, à 20:34

Ni1383

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

Merci de ta réponse.

Je ne dois pas changer de répertoire, ni utiliser de boucles.
J'ai trouvé ceci "echo $(ls repertoire_voulu)" qui fonctionne pour les fichiers normaux.

En revanche, si je tape "echo $(ls -d .* repertoire_voulu) pour les fichiers cachés, ça n'affiche pas le bon résultat, alors que ls -d .* fonctionne bien dans le répertoire courant (ça ne liste qu'uniquement les fichiers cachés.

Dernière modification par Ni1383 (Le 21/10/2021, à 20:34)

Hors ligne

#4 Le 21/10/2021, à 21:39

Tawal

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

Hello

Avec :

echo /chemin/du/dossier/*

affichera tous les fichiers (même les cachés) et les répertoires (même les cachés) du "dossier".
Avec :

echo /chemin/du/dossier/.*

affichera tous les fichiers et répertoires que cachés.

Difficile de faire mieux, je pense, avec un simple echo.

Edit:
Avec la substitution de commande (mais je ne vois pas l'intérêt) :

echo $(ls -d /chemin/du/dossier/*)

et

echo $(ls -d /chemin/du/dossier/.*)

C'est les même résultat qu'avec un simple echo.

Dernière modification par Tawal (Le 21/10/2021, à 21:45)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#5 Le 21/10/2021, à 21:45

Watael

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

ici, le echo ne sert à rien, sinon à être là, comme un ornement.

les contraintes de cet exercice ne sont pas réalistes.

fais-nous un copier/Coller du sujet tel qu'il t'a été donné; il y a peut-être quelque chose qui t'a échappé.

Dernière modification par Watael (Le 21/10/2021, à 21:54)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 21/10/2021, à 22:12

Ni1383

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

Tawal a écrit :

Hello

Avec :

echo /chemin/du/dossier/*

affichera tous les fichiers (même les cachés) et les répertoires (même les cachés) du "dossier".
Avec :

echo /chemin/du/dossier/.*

affichera tous les fichiers et répertoires que cachés.

Difficile de faire mieux, je pense, avec un simple echo.

Edit:
Avec la substitution de commande (mais je ne vois pas l'intérêt) :

echo $(ls -d /chemin/du/dossier/*)

et

echo $(ls -d /chemin/du/dossier/.*)

C'est les même résultat qu'avec un simple echo.

Super, ça répond à ma question et ça marche pour mon exercice.
Merci beaucoup !

Hors ligne

#7 Le 21/10/2021, à 22:23

Watael

Re : echo pour lister fichiers dans un répertoire qui n'est pas le courant

je n'avais pas compris que afficher uniquement les noms des fichiers n'était pas dans le sujet.
c'est en effet beaucoup plus simple. smile

par contre, comme je l'ai dit, et comme l'a souligné Tawal, ça n'affiche pas QUE les fichiers. hmm
OR, les répertoires ne sont pas des "fichiers normaux" !


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne