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

Slystone a écrit :

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 ?

Slystone a écrit :

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