Pages : 1
#1 Le 07/03/2011, à 00:57
- Scott Cha'k
Combiner cd et ls
Bonsoir ^^
Je suis dans mes tous débuts avec linux (à savoir Ubuntu 10.04 LTS) et j'adapte peu à peu mes commandes à mes besoins courants. Celui sur lequel je bute étant celui-ci.
"cd" est une commande très souvent utilisée, mais quasiment systématiquement suivi de "ls" (c'est bien de bouger dans les répertoires, mais faut savoir ou on arrive aussi. Mon premier réflexe était " man cd " ou " cd --help " pour voir si y'avait par hasard une option déjà existante, mais apparament il n'existe pas de manuel pour cd ou d'option help.
Deuxième essaie, modifier mon .bashrc pour y inclure, en y ajoutant l'alias:
" alias cd='cd $1;ls' "
(en prenant le soin de redémarrer ma console après pour prendre en compte la modification). Ce code affiche bien le contenu du répertoire indiqué, mais je reste dans le même répertoire. Donc je modifie encore une fois mon .bashrc:
" alias cd='cd $1;ls;cd $1' "
mais toujours pas de chance, le premier cd ne marche pas (je sais pas pourquoi), le ls m'affiche le contenu du repertoire ou je suis déjà, puis me déplace dans le répertoire demandé.
Troisième essaie, écrire un script. Je modifie ma variable $PATH pour inclure mon répertoire de script personel, puis j'y place le script suivant:
#!/bin/bash
directory=`echo $1 | sed 's/ /\\\ /'` #juste pour régler le problème des noms de répertoire contenant des espaces
cd "$directory"
ls
mais je retrouve le même problème, il liste les fichiers du répertoire demandé, mais ne bouge pas dans ce répertoire.
Quelqu'un peut-il:
1) me proposer une solution ?
2) m'expliquer pourquoi mes codes ne marchent pas ?
Hors ligne
#2 Le 07/03/2011, à 01:24
- Haleth
Re : Combiner cd et ls
#!/bin/bash
cd $1
ls $1
Pragmatique.
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#3 Le 07/03/2011, à 01:57
- Scott Cha'k
Re : Combiner cd et ls
C'est toujours le même souci, j'obtiens bien la liste des éléments contenu dans le répertoire désigné par variable $1, par contre la console ne me place pas à l'intérieur de ce dossier (en gros, ça revient c'est le même résultat que " ls $1 " tout seul).
Hors ligne
#4 Le 07/03/2011, à 03:45
- FRUiT
Re : Combiner cd et ls
Dans ~/.bashrc
function cd () { builtin cd "$*" && ls ; }
Il faut fermer/rouvrir la console ou sourcer ensuite le fichier.
$ source ~/.bashrc
Tes codes ne marchent pas parce que :
1) il aurait fallu protéger le $ et utiliser des double-quotes (les simples ne développent pas les paramètres positionels ($1, $2, etc) :
alias cd2="cd \$1 && ls"
mais ça ne règle pas le problème du changement effectif de dossier.
2) la commande cd n'affecte pas le shell courant si invoquée dans un script (shell 'fils'). En revanche tant que tu es dans ton script, cd fonctionne, bien qu'il n'y serve à rien en réalité.
Dernière modification par FRUiT (Le 07/03/2011, à 05:40)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#5 Le 07/03/2011, à 08:25
- Scott Cha'k
Re : Combiner cd et ls
Merci beaucoup pour cette solution et les explications. J'avais remarqué (avec des pwd) que le répertoire d'exécution du script changeait avant et après le cd, sans que la console s'y déplace ...
Pour finir, quelqu'un connais un bon tuto pour le bash sur internet (ou éventuellement un livre)? Le site du zéro en propose un, mais il est pas très élaboré, et ceux que je trouve dans les moteurs de recherche ne le sont pas tellement non plus.
Hors ligne
#6 Le 07/03/2011, à 08:31
- 01franz
Re : Combiner cd et ls
toujours utile
sudo tail -f /var/log/syslog
Hors ligne
#7 Le 07/03/2011, à 20:07
- Scott Cha'k
Re : Combiner cd et ls
Parfait, là y'a de quoi lire ^^
Hors ligne
#8 Le 22/04/2011, à 23:03
- Hornblende
Re : Combiner cd et ls
Au cas où quelqu'un cherche comment faire, je laisse la commande à rajouter dans le ~/.bashrc pour combiner cd et ls et revenir au /home si on fait un "cd" sans chemin derrière (le comportement par défaut de cd).
#----------------------------------------------
#Modifie la commande cd pour afficher les éléments du dossier
function cd () {
if [ -z "$1" ]
then
builtin cd
else
builtin cd "$*" && ls -lh ;
fi
}
#----------------------------------------------
Vous êtes débutant / nouveau sous Ubuntu et Gnu/Linux ? Pas de panique !
=> commencez par là
Hors ligne
#9 Le 27/03/2018, à 11:12
- moinux
Re : Combiner cd et ls
Bonjour, des années plus tard j'ai eu le même problème, et aucune des solutions proposées n'ont fonctionné pour moi... J'ai donc essayé de les combiner et le résultat que j'ai obtenu fonctionne très bien :
- création d'un script ~/bin/cs (contraction de cd et ls), contenant les instructions suivantes :
#! /bin/bash
#cs
if [[ $1 = "" ]] ; then
cd ~ ; ls --color #ls colorisé pour un peu mieux voir
elif [[ -d $1 ]] ; then
cd $1 ; ls --color
else
echo "cs: $1: Not a directory"
fi
- dans ~/.bashrc, ajout en bas de page d'un alias :
alias cs="source ~/bin/cs"
- dans le terminal, entrer la commande :
source ~/.bashrc
- éventuellement, changer les droits du script avec la commande :
chmod 764 ~/bin.cs
Hors ligne
#10 Le 27/03/2018, à 15:50
- Compte anonymisé
Re : Combiner cd et ls
enfaite, il n'est pas utile de changer de répertoire (je conseilles même d'éviter de le faire dans un script)
ls permet de définir le répertoire, donc
au lieu de faire :
cd ... ; ls
on peut faire :
ls ...
Dernière modification par Compte anonymisé (Le 27/03/2018, à 22:51)
#11 Le 27/03/2018, à 17:41
- serged
Re : Combiner cd et ls
Et tout bêtement :
ls directory
(sans script, sans alias...) Ça marche !
Exemple :
serge@slibovix:~/Documents$ ls Doc\ Linux/
abs-guide_6.6.pdf OOo_API_intro.pdf
Bash avancé-abs-5.3.pdf petit_precis_des_commandes_unix_utiles_a_ubuntu.pdf
Chap-1_Marcelly.pdf Pour_aller_plus_loin_avec_la_ligne_de_commande.pdf
Full-Circle-LibreOffice.pdf Simple Comme Ubuntu 9.04.pdf
Gimp-cours-r3_2012.pdf Tutoriel_Gimp_coloriser-Feramus-cc-by-sa.pdf
IntroProgBash.pdf ubuntu_fr_carte_reference3.pdf
iscan-doc.pdf ubuntupocketguide-v1-1.pdf
memo_admin_linux.pdf
serge@slibovix:~/Documents$
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
#12 Le 27/03/2018, à 17:44
- serged
Re : Combiner cd et ls
e
au lieu de faire :cd ... ; ls
on peut faire :
ls ...
ts... ts... le répertoire "..." ça ne marche pas (du moins en bash)
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
#13 Le 27/03/2018, à 18:10
- erresse
Re : Combiner cd et ls
Sans vouloir vexer personne, je trouve que ce qui est le plus inutile ici, c'est la totalité de la démarche. Quel intérêt de combiner les deux commandes "cd" et "ls" ? Aucun !
Rien n'empêche de saisir "cd [répertoire]; ls", ou "cd [répertoire] && ls" (si on veut être sûr du déplacement), ce qui coûte quoi... 2 caractères de plus à taper ?!?
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#14 Le 27/03/2018, à 18:21
- Roschan
Re : Combiner cd et ls
2 caractères de trop. Je comprends totalement la démarche.
Hors ligne
Pages : 1