#1 Le 02/01/2015, à 20:50
- Wombozo
[Résolu] Pipe où la sortie est dirigée sur cd
Bonjour, je suis nouveau dans l'apprentissage des commandes. Après avoir appliqué quelques techniques sur le pipe, j'ai tenté de relier le sdout de la commande locate vers une commande cd, mais comme vous pouvez le constater, à priori le shell n'a pas considéré le chemin absolu que je lui ai demandé. Pourquoi ma commande n'a-t-elle pas de sens ? (Cela n'a aucun interêt je sais, mais c'est pour bien m'aider à comprendre et à trouver d'autre commandes que grep ou less après le pipe.)
guillaume@ordi:~/Documents$ pwd /home/guillaume/Documents guillaume@ordi:~/Documents$ ls -l total 8 drwxrwxr-x 4 guillaume guillaume 4096 déc. 31 16:17 fichiers_textes drwxrwxr-x 4 guillaume guillaume 4096 déc. 16 23:05 python guillaume@ordi:~/Documents$ locate fichiers_textes /home/guillaume/Documents/fichiers_textes /home/guillaume/Documents/fichiers_textes/alors.txt guillaume@ordi:~/Documents$ locate -n 1 fichiers_textes | cd guillaume@ordi:~/Documents$ pwd /home/guillaume/Documents
Merci de votre réponse, et bonne année à tous.
Dernière modification par Wombozo (Le 03/01/2015, à 12:55)
Hors ligne
#2 Le 02/01/2015, à 22:34
- Slystone
Re : [Résolu] Pipe où la sortie est dirigée sur cd
Salut !
Hum, cd sans rien derrière, ça n'a effectivement aucun sens.
La commande la plus importante : man
Sinon tu peux commencer par le site du zéro, il y a un tuto sur la prise en main de « Linux », le reste dépend de toi, bon courage.
Dernière modification par Slystone (Le 02/01/2015, à 22:35)
«Rigid, the skeleton of habit alone upholds the human frame.» - Virginia Woolf.
Hors ligne
#3 Le 02/01/2015, à 22:44
- Wombozo
Re : [Résolu] Pipe où la sortie est dirigée sur cd
Hum, cd sans rien derrière, ça n'a effectivement aucun sens.
Et bien dans ce que j'ai compris, la commande avant le pipe retourne l'argument de celle après le pipe. Par exemple, pour la commande :
~/Documents$ echo 'blabla' | less
c'est comme si j'avais tapé :
~/Documents$ less blabla
Pour ma commande locate, si je met 'cd' apres et que locate retourne '/Documents', le bloc de commandes est supposé retourner 'cd /Documents' non ?
Sinon tu peux commencer par le site du zéro, il y a un tuto sur la prise en main de « Linux »
J'ai acheté des bouquins sur Linux, mais j'essaye simplement d'évoluer.
Hors ligne
#4 Le 02/01/2015, à 22:55
- Watael
Re : [Résolu] Pipe où la sortie est dirigée sur cd
salut,
non,
less blabla
va lire le fichier 'blabla'
dans
echo 'bla bla' | less
`less' va lire le flux sur son entrée standard, ce que ne fait pas `cd', elle, elle prend des arguments (ce qu'il y a après).
donc, il faut passer le résultat de `locate' en argument à `cd' avec une Substitution de commande.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 02/01/2015, à 23:07
- Wombozo
Re : [Résolu] Pipe où la sortie est dirigée sur cd
Donc si j'ai bien compris, lorsque less est précédée ou non d'un " | " , elle ne fait pas la même chose.. Qu'est-ce qu'une substitution de commande ? J'imagine que ça permet de mettre en argument la sortie d'une autre commande ? Je pensais que c'était le rôle de pipe au début.
Merci de ta réponse.
Hors ligne
#6 Le 03/01/2015, à 07:53
- pingouinux
Re : [Résolu] Pipe où la sortie est dirigée sur cd
Bonjour,
commande_1 | commande_2
La sortie standard de commande_1 est l'entrée standard de commande_2.
cd ne lit rien sur l'entrée standard. cd seul va te placer dans ton home, mais comme il est exécuté dans un sous-shell à cause du pipe, tu restes dans ton répertoire initial à la sortie du pipe.
Tu peux faire ce que t'a suggéré Watael :
cd "$(commande_qui_retourne_le_nom_d_un_répertoire)"
Hors ligne
#7 Le 03/01/2015, à 12:56
- Wombozo
Re : [Résolu] Pipe où la sortie est dirigée sur cd
Merci pour ta réponse.
Hors ligne