#1 Le 10/09/2021, à 14:35
- genevrier
Liste de fichiers dans un dossier [résolu]
Bonjour, je voudrais lister en txt le contenu de mon fichier livres numériques et je reçois :
Documents/Livres$ cd /livres numériques
bash: cd: trop d'arguments
Qui peut m'aider ?
D'avance merci
Dernière modification par genevrier (Le 10/09/2021, à 22:36)
Hors ligne
#2 Le 10/09/2021, à 14:42
- gl38
Re : Liste de fichiers dans un dossier [résolu]
C'est pas compliqué : cd ne veut qu'un argument, tu lui en donnes 2 "/livres" et "numériques".
En plus commencer par un / t'amène à la racine.
Si tu tiens aux espaces dans les noms de dossiers il faut tout mettre entre guillemets, du genre "livres numériques"
Donc quelque chose comme
cd "livres numériques"
aurait pu mieux marcher.
Cordialement,
Guy
Hors ligne
#3 Le 10/09/2021, à 14:45
- serged
Re : Liste de fichiers dans un dossier [résolu]
C'est l'espace qui coince :
cd "Documents/livres numériques"
ou
cd Documents/livres\ numériques
devraient mieux marcher...
Il faut soit mettre, le nom du dossier entre "", soit échapper les espaces (ou autres caractères spéciaux) avec un \.
Astuce : utiliser la complétion avec la touche tabulation :
cd Doc<tab>
affichera :
cd Documents
Ensuite
livre<tab>
affichera :
livres\ numériques
ce qui est bon !
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#4 Le 10/09/2021, à 14:52
- abelthorne
Re : Liste de fichiers dans un dossier [résolu]
Déjà, cd sert à te placer dans un dossier ; si tu veux lister quelque chose, c'est la commande ls qui le fait.
Deuxièmement, le slash (/) sert à indiquer la hiérarchie des dossiers. Sans rien devant, le premier slash correspond à la racine du système.
Troisièmement, en ligne de commande, les espaces servent à délimiter les paramètres d'une commande. Avec la commande telle que tu l'as tapée, tu demandes au shell de te placer dans deux dossiers : un "livres" qui serait à la racine du système (/livres) et un "numériques" qu'il chercherait dans le dossier courant. On ne peut pas indiquer deux dossiers à cd (on ne peut pas se placer dans deux dossiers à la fois), donc il te dit qu'il y a trop d'arguments (autrement dit trop de paramètres) passés à cd.
Pour indiquer qu'une espace fait partie du nom d'un fichier et ne doit pas être considéré comme un séparateur, on doit la protéger en mettant un antislash devant. C'est valable aussi pour d'autres caractères spéciaux qui ont une signification pour le shell (parenthèses, crochets...). On peut aussi entourer le chemin complet avec des guillemets (dans ce cas-là, pas d'antislash à mettre).
Je ne comprends pas bien la forme de ton invite de commande mais en supposant que tu es dans ~/Documents/Livres (~ étant un raccourci qui désigne ton dossier perso) et que tu cherches à manipuler un dossier "livres numériques" qui est dedans, tu as plusieurs syntaxes possibles. Si tu veux te placer dedans avec cd :
cd livres\ numériques
cd "livres numériques"
ou, de la même façon, pour lister le contenu du dossier avec ls sans pour autant te placer dedans d'abord :
ls livres\ numériques
ls "livres numériques"
Une dernière remarque : si tu mets des guillemets autour d'un chemin, le raccourci ~ ne sera pas interprété :
cd "~/Documents/Livres/livres numériques"
ne fonctionnera pas, le shell va chercher un dossier qui s'appelle "~". En revanche, les variables sont interprétées. Tu pourrais pas exemple utiliser la variable d'environnement $HOME qui est aussi un raccourci vers ton dossier perso :
cd "$HOME/Documents/Livres/livres numériques"
Sans les guillemets, les deux raccourcis fonctionnent, ces deux syntaxes sont équivalentes :
cd ~/Documents/Livres/livres\ numériques
cd $HOME/Documents/Livres/livres\ numériques
Bien sûr, sans les guillemets, il faut utiliser les antislashes pour protéger les caractères spéciaux.
Dernière modification par abelthorne (Le 10/09/2021, à 14:53)
Hors ligne
#5 Le 10/09/2021, à 15:43
- MicP
Re : Liste de fichiers dans un dossier [résolu]
Bonjour
cd est la commande qui permet de changer de répertoire
… je voudrais lister en txt le contenu de mon fichier livres numériques …
mais tu disais dans ton message #1 que c'était le contenu d'un fichier que tu voudrais lister,
alors ce n'est pas la commande cd qu'il te faut utiliser,
mais plutôt une commande comme less ou cat
donc, si tu es dans le répertoire qui contient le fichier en question,
et que le nom de ce ficher commence bien par livres
tape ce qui suit :
cat livres
et ensuite tape une fois sur la touche de Tabulation
- Si un nom de fichier de ce répertoire commence par livres
la suite de son nom sera automatiquement affichée,
et il ne te restera plus qu'à valider la ligne proposée.
- Si la première frappe de la touche Tabulation n'a rien donné,
c'est peut-être qu'il n'y a pas qu'un seul fichier dont le nom commence par livres
alors tape une deuxième fois sur la touche de Tabulation,
et la liste des noms des fichiers qui commencent par livres sera affichée.
- Si la deuxième frappe de la touche de Tabulation n'a rien donné
c'est peut-être qu'il n'y a pas de nom de fichier qui commence par livres
Peut-être que le début du nom du fichier,
c'est livre ou Livres ou Livre
Dernière modification par MicP (Le 10/09/2021, à 15:49)
Hors ligne
#6 Le 10/09/2021, à 22:42
- genevrier
Re : Liste de fichiers dans un dossier [résolu]
Merci à tous, j'ai trouvé une solution plus simple : à partir de mon fichier : ouvrir dans un terminal puis ls et ma liste est apparue ! Un petit copier/coller et voilà ...
~/Documents/Livres/Livres numériques/Transférvers liseuse$
Hors ligne
#7 Le 11/09/2021, à 06:15
- Watael
Re : Liste de fichiers dans un dossier [résolu]
des bouts de ficelle et du scotch, ça marche toujours.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne