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 29/06/2011, à 14:00

Nfjord

[RESOLU] Executer une commande dans une autre

Bonjour,

j'aimerai savoir s'il existe une technique pour palier à ce petit souci que je rencontre souvent en ligne de commande.

Soit l'arborescence de fichiers suivants :

a
| - aa
| | - aaa
| | | - fichier1
| - bb

Je me trouve dans le dossier a/ Je souhaite copier fichier1 dans le dossier bb/bbb/ Je tape donc la commande suivante :

cp aa/aaa/fichier1 bb/

et là je me rend compte que je dois créer le dossier bbb/ qui n'existe pas encore dans bb/. Je suis alors obligé d'annuler la commande que j'ai tapée, de taper une commande pour créer le dossier bbb/ puis retaper la commande de copie. Je suis sûr qu'il existe un moyen en une seule commande de dire que je veux créer le dossier bbb/ et copier fichier1 dedans. Je vois un truc du genre :

cp aa/aaa/fichier1 bb/$(mkdir bb/bbb)/

Bref, inclure la commande de création du dossier bbb/ dans la commande de copie de telle sorte à ne pas avoir à retaper la commande si je remarque qu'il faut créer des dossiers supplémentaires. Evidemment, si je tape directement

cp aa/aaa/fichier1 bb/bbb/

ça ne marche pas car le dossier bbb/ n'existe pas. Je n'ai pas non plus trouvé d'option à cp pour lui dire de créer automatiquement les éventuels dossiers qui n'exiterai pas.

Dernière modification par Nfjord (Le 29/06/2011, à 14:56)


It's always a long day, 86,400 won't fit into a short.

Hors ligne

#2 Le 29/06/2011, à 14:07

PsiKoO

Re : [RESOLU] Executer une commande dans une autre

Bonjour,

essaye

commande1 && commande2

dans ton cas, creer le repertoire en premier^^


.: Ubuntu uSeR SiNCe 5.10 BReeZy BaDGeR :.

Hors ligne

#3 Le 29/06/2011, à 14:25

Nfjord

Re : [RESOLU] Executer une commande dans une autre

Bonjour, merci pour votre réponse. Le problème c'est que je me rend compte que je dois créer le dossier bbb/ seulement après avoir tapé la quasi totalité de la commande cp. Dans mon exemple, l'arborescence n'est pas grande donc ça va mais quand je cherche un fichier à tâtons (en utilisant la touche TAB pour qu'il termine à ma place le nom des dossiers) et que je fouille dans une arbo. très profonde, ça m'ennuie vraiment de faire CTRL+C, créer le répertoire et retaper à nouveau à tâtons toute l'arbo. jusqu'au bon fichier. Donc je cherche un moyen de lui dire de créer le répertoire sans "perdre" déjà tout le début de la commande cp que j'ai tapé. Je sais pas si je suis très clair...


It's always a long day, 86,400 won't fit into a short.

Hors ligne

#4 Le 29/06/2011, à 14:38

Watael

Re : [RESOLU] Executer une commande dans une autre

salut,

Tu pourrais te renseigner sur readline, et utiliser les "raccourcis clavier" adaptés.
i.e. en mode emacs :
Ctrl-u : couper jusqu'au début de la ligne
Ctrl-k : couper jusqu'à le fin de la ligne
Ctrl-y : coller le tampon
et bien d'autres...


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

Hors ligne

#5 Le 29/06/2011, à 14:53

Nfjord

Re : [RESOLU] Executer une commande dans une autre

Ah très intéressant et utile le CTRL+U puis CTRL+Y, on en apprend tous les jours. Merci beaucoup !


It's always a long day, 86,400 won't fit into a short.

Hors ligne

#6 Le 29/06/2011, à 15:28

aduxas

Re : [RESOLU] Executer une commande dans une autre

Nfjord a écrit :

ça m'ennuie vraiment de faire CTRL+C, créer le répertoire et retaper à nouveau à tâtons toute l'arbo.

Tu ne peux pas revenir en début de ligne avec la clef <début de page (home)>, insérer le mkdir && et retourner avec <fin de page (end)> ?

Hors ligne

#7 Le 29/06/2011, à 16:39

Nfjord

Re : [RESOLU] Executer une commande dans une autre

J'aimerai bien mais je suis sur un MAC et il est impossible de revenir en début de ligne dans le terminal. J'ai essayé toutes les combinaisons claviers possibles, tous les paramétrages possible aussi bien dans les paramètres du terminal que dans les paramètres généraux de OS X, impossible de ramener le curseur en début de ligne (à moins d'utiliser la flèche gauche et d'attendre que le curseur remonte toute la ligne caractère par caractère). Pourtant le raccourci <début page> <fin page> de MAC  fonctionne bien sur firefox, gvim, thunderbird, openoffice, etc. mais dans le terminal il veut pas. Mais ça c'est un autre souci.

Dernière modification par Nfjord (Le 29/06/2011, à 16:43)


It's always a long day, 86,400 won't fit into a short.

Hors ligne