====== Répertoires et chemins ====== * Objet : Répertoire et chemins en détail * Niveau requis :{{tag>débutant avisé}} * Commentaires : //Introduction pour l'utilisation des //[[:doc:systeme:commandes:gnu_linux | lignes de commande]]// par l'exemple.// * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) * Suivi : * Création par [[user>smolski]] le 08/11/2010 * Testé par [[user>milou]] le 18/12/2015 * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=122543#p122543 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) Partons maintenant à la découverte des chemins absolus et relatifs... Pour les exemples, nous allons utiliser pour le nom de la machine : ''machine'' et pour le nom user : ''toto'', pour exécuter les commandes en exemple, transposez ces noms avec ceux que vous utilisez. ===== Préparation du terrain ===== Dans votre ///home/toto//,créez un nouveau dossier avec [[doc:systeme:mkdir|la commande mkdir]], puis placez-vous dans ce nouveau dossier avec [[doc:programmation:shell:cd|la commmande cd]]. Exemple pratique : mkdir -p tmp/df_tp_chemins_01/ cd tmp/df_tp_chemins_01/ L'invite de commande devient toto@machine:~/tmp/df_tp_chemins_01$ Ce qui signifie que nous sommes placés maintenant dans le répertoire créé avec mkdir à l'intérieur du répertoire ''/home/toto'' Avec [[doc:systeme:touch|la commande touch]], on va maintenant créer dans ce nouveau répertoire les fichiers qui nous serviront pour la suite. Exemple des commandes de la création des fichiers : touch phaute_dorthografe touch notes_temporaires touch quisuisje ===== Le répertoire courant, ou répertoire de travail ===== Nous utilisons le nom ''toto'' pour indiquer l'//user// des exemples et ''machine'' pour le nom donné à la machine, transposez //toto// avec vos propres nom user et //machine// pour le nom de votre machine pour réaliser chez les exemples qui suivent. Le répertoire courant, ou répertoire de travail est ce qui est indiqué juste à gauche du ''$'' dans le prompt((terminal)) [[doc:programmation:bash|bash]] ainsi : ~/tmp/df_tp_chemins_01$ Vous pouvez l'afficher en tapant [[doc:systeme:pwd|la commande pwd]] : toto@machine:~/tmp/df_tp_chemins_01$ pwd /home/toto/tmp/df_tp_chemins_01 On change de répertoire de travail avec [[:doc:programmation:shell:cd | la commande CD]]. Le répertoire de travail est également stocké dans la variable ''$PWD'' du shell. [[doc:systeme:echo|La commande echo]] à savoir pour la suite. toto@machine:~/tmp/df_tp_chemins_01$ echo $PWD /home/toto/tmp/df_tp_chemins_01 ===== Chemin relatif / chemin absolu ===== Pour identifier de manière unique un fichier sur un ordinateur sous Linux, on donne ce qu'on appelle un chemin vers le fichier. Ce chemin peut être : * //absolu// ou * //relatif// ===== Quelques chemins particuliers ===== * ''..'' (deux points) désigne le répertoire parent d'un répertoire considéré * ''.'' (un point) désigne le répertoire considéré **Exemples :** * ''/home/../var'' est un chemin pour le répertoire ''/var'' * ''ls .'' liste le répertoire courant * ''.././././.'' est un chemin vers le dossier parent, équivalent à ''..'' === Chemin absolu === Un **chemin absolu** est un chemin depuis la racine du système de fichier, ''/'' Exemples de chemin //absolu// : * ''/var/cache/apt/archives/'' qui est le dossier contenant les paquets téléchargés pour installation ou mise à jour par ''aptitude'', ou ''apt-get'', ou ''synaptic'' etc. * ''/home/../var'' est aussi un chemin absolu puisqu'il donne le chemin depuis ''/'' === Chemin relatif === Un **chemin relatif** est un chemin depuis le **répertoire de travail** : ''$PWD'' Exemple de chemin //relatif// : * ''../../'' est un chemin relatif vers le dossier parent du dossier parent. Si vous êtes toujours dans ''~/tmp/df_tp_chemins_01/'', la commande ls ../.. doit vous lister votre //home//. * ''./plouf/../tchac/'' est un chemin relatif vers le dossier ''$PWD/tchac'' ''Attention !'' : Virtuellement, un chemin relatif commence **toujours** par :''./''. \\ Cependant, en règle générale, on peut l'omettre. Exemple ls -lh quisuisje Signifie en fait : ls -lh ./quisuisje ==== Exemple pour renommer des fichiers ==== Lorsque l'on veut renommer un fichier, on utilise [[:doc:systeme:mv | la commande mv]] qui prend deux arguments : - D'abord un **chemin** vers le fichier à déplacer, - puis le nouveau **chemin** du fichier. Ce chemin peut être : - soit //absolu// - soit //relatif// Dans la construction des fichiers d'exemple, nous pouvons exécuter [[:doc:systeme:mv | la commande mv]] : === Soit avec deux chemins relatifs : === toto@machine:~/tmp/df_tp_chemins_01/$ mv ./phaute_dorthografe ./faute_dorthographe qui signifie donc : mv $PWD/./phaute_dorthografe $PWD/./faute_dorthographe === Soit avec un chemin relatif et un chemin absolu === toto@machine:~/tmp/df_tp_chemins_01/$ mv ./notes_temporaires /tmp/notes_temporaires.txt qui signifie : toto@machine:~/tmp/df_tp_chemins_01/$ mv $PWD/./notes_temporaires /tmp/notes_temporaires.txt ==== Effacer le bazar ==== Pour enlever les fichiers du tuto : cd ~/tmp toto@machine:~/tmp$ rm -r df_tp_chemins_01 toto@machine:~/tmp$ cd L'invite de commande redevient toto@machine:~$ ===== Liens et remerciements ===== //Allez donc voir ici :// * [[:doc:systeme:find#tp01_-_exec_et_execdir | Les outils d'exécution exec et execdir de la commande find]] //Vous n'en reviendrez pas comme ça devient maintenant facile !// :-) //Un gros merci au //**captnfab**// qui nous guide et nous permet de reproduire ici le contenu de sa substantifique moëlle, ce que faire se peut.// ;-)