Nous utilisons des chemins absolus et relatifs dans la console. Notions de base sur Linux : une introduction à bash Exemples utilisant des chemins relatifs

J'ai récemment décrit des commandes pour se déplacer dans les répertoires du terminal Linux... J'ai donc décidé de continuer l'histoire des commandes dans la console. Les mouvements semblent donc s'arranger. Maintenant, je veux examiner un peu plus en détail les chemins d'accès aux répertoires dans la console.

Commençons par examiner les chemins les plus connus vers nos fichiers et répertoires, à savoir les chemins absolus. Ouvrez un terminal et exécutez une commande qui imprime le chemin complet de votre répertoire personnel. J'ai parlé de cette équipe récemment, ici. Présenter pwd:


: ~ $ pwd
/ accueil / dante


Comme vous pouvez le voir, cette commande de console a imprimé le chemin complet à partir du répertoire racine. Je viens de décrire un tel mouvement dans les répertoires récemment, ce mouvement utilisant un chemin absolu. Mais ce ne sont pas toutes des possibilités de se déplacer dans les catégories de notre système d'exploitation. Dans le système d'exploitation Linux, il y a aussi la possibilité d'utiliser des chemins relatifs.

Chemins relatifs dans la console, en comptant les catégories par rapport à la catégorie dans laquelle vous vous trouvez. Ils peuvent être utilisés avec ".." deux points indiqués devant le dossier vers lequel nous voulons aller. Allons quelque part dans notre système d'exploitation. Par exemple dans le dossier usr et examinez son contenu avec la commande ls.

[email protégé]: ~ $ cd / usr
[email protégé]: /usr $ ls

[email protégé]: / usr $

Ici, nous voyons une liste des répertoires disponibles. Passons maintenant au répertoire " partager».

[email protégé]: ~ $ cd / usr / share


Donc, maintenant nous sommes dans la catégorie / usr / partager comme on peut le voir. Passons maintenant à une catégorie qui est à égalité avec la catégorie dans laquelle nous nous trouvons. Par exemple, dans la catégorie " local". Cela peut être fait avec un chemin absolu comme celui-ci.

[email protégé]: ~ $ cd / usr / local

[email protégé]: / usr / share $ pwd
/ usr / partager
[email protégé]: / usr / partager $


Comme vous pouvez le voir, je vous ai affiché dans la console, le chemin complet vers l'endroit où vous vous trouvez. Nous savons que le répertoire " local"Est au même niveau que le répertoire" partager"Et nous pouvons utiliser une commande comme celle-ci.

[email protégé]: /usr/share $ cd ../local
[email protégé]: / usr / local $


Comme vous pouvez le voir, la commande de requête est devenue beaucoup plus simple. Mais ce n'est que si vous vous souvenez des répertoires qui sont au même niveau que votre répertoire de travail, et je ne me souviens pas toujours des autres répertoires de la console.

Pour passer au répertoire suivant, entrez simplement la commande dans la console relative à votre répertoire de travail. À ces fins, utilisez plutôt ".." deux points, "." un point et vous vous déplacerez par rapport au répertoire de la console dans lequel vous vous trouvez en ce moment. Revenons au répertoire / usr et regarde encore ce qu'il y a.

[email protégé]: /usr/local $cd/usr
[email protégé]: /usr $ ls
les jeux bin incluent lib local sbin share src
[email protégé]: / usr $


Passons maintenant au répertoire " partager»Par rapport au répertoire dans lequel nous nous trouvons actuellement. Pour cela, entrez dans la console

[email protégé]: / usr $ cd ./local
[email protégé]: / usr / local $


Comme vous pouvez le voir, l'utilisation de chemins relatifs peut considérablement raccourcir les commandes que vous entrez dans la console. Linux.

Tous les fichiers sous Linux ont une adresse spécifique dans le système de fichiers avec laquelle nous pouvons y accéder à l'aide du gestionnaire de fichiers ou des utilitaires de la console. C'est un sujet assez simple, mais de nombreux débutants ont du mal avec.

Dans la brève note d'aujourd'hui, nous verrons quel est le chemin d'accès à un fichier Linux, ce qu'il peut être, comment l'écrire correctement, et bien plus encore. Si plus tôt vous avez eu des difficultés avec cela, alors après avoir lu l'article, tout deviendra complètement clair.

Chemins de fichiers sous Linux

Le système de fichiers Linux est très différent de Windows. Nous ne considérerons pas sa structure, cela a été fait plus tôt. Nous allons nous concentrer sur le travail avec les fichiers.

La différence la plus importante est que l'adresse du fichier ne commence pas à partir du lecteur, par exemple, C: \ ou D: \ comme cela se produit sous Windows, mais à partir de la racine, le répertoire système racine auquel tous les autres sont connectés. Son adresse - /. Et ici, il faut dire sur les adresses. Les chemins de fichiers Linux utilisent une barre oblique "/" pour séparer les répertoires dans une adresse, ce qui est différent de ce que vous avez l'habitude de voir sous Windows - \.

Par exemple, si sous Windows le chemin complet du fichier sur le bureau ressemblait à C: \ Users \ Sergiy \ Desktop \, alors le chemin du fichier sous Linux sera simplement / home / sergiy / desktop /. Jusqu'à présent, tout est simple et clair avec cela. Mais des problèmes continuent de se poser.

Le système d'exploitation Linux peut avoir plusieurs types de chemins de fichiers. Regardons quels sont les chemins sous Linux :

  • Chemin Linux complet et absolu à partir de la racine du système de fichiers- vous avez déjà vu ce chemin dans l'exemple ci-dessus, il part de la racine "/" et décrit le chemin complet vers le fichier ;
  • Chemin relatif Linux est le chemin d'accès au fichier par rapport au dossier actuel, de tels chemins sont souvent source de confusion.
  • Le chemin relatif au dossier de départ de l'utilisateur actuel.- chemin dans le système de fichiers, non seulement à partir de la racine, mais à partir du dossier de l'utilisateur actuel.

Examinons maintenant de plus près à quoi ressemblent ces chemins sous Linux, et analysons également quelques exemples pour que cela soit enfin clair. Pour la démonstration, nous utiliserons l'utilitaire ls, qui est conçu pour afficher le contenu des répertoires.

Par exemple, nous avons un répertoire comme celui-ci dans notre dossier personnel contenant quatre fichiers :

Voici à quoi ressemblera le chemin Linux complet vers l'un des fichiers :

ls / home / sergiy / tmp / file1

Il s'agit déjà d'un chemin Linux relatif qui commence à partir du dossier de départ, il est indiqué par ~/. Remarquez, pas ~, mais ~ /. Ensuite, vous pouvez déjà spécifier des sous-dossiers, dans notre cas tmp :

Eh bien, ou le chemin du fichier sous Linux, par rapport au dossier actuel :

Le premier lien pointe vers le dossier actuel (.), le second (..) pointe vers le dossier un niveau supérieur. Cela ouvre des possibilités encore plus larges de navigation dans les catalogues. Par exemple, pour faire référence à un fichier dans le dossier courant, vous pouvez utiliser la construction :

Il est inutile lors de la visualisation du contenu d'un fichier. Mais c'est très important lors de l'exécution du programme. Étant donné que le programme sera recherché d'abord dans l'environnement PATH, et ensuite seulement dans ce dossier. Par conséquent, si vous devez exécuter un programme qui se trouve dans le dossier actuel et qu'il porte exactement le même nom que celui du répertoire / bin, rien ne fonctionnera sans une référence explicite indiquant que le fichier doit être recherché dans le dossier actuel. dossier.

De telles constructions peuvent être rencontrées assez souvent lors de la compilation de programmes. Vous pouvez utiliser tous ces symboles et chemins de fichiers Linux non seulement dans le terminal, mais également dans n'importe quel gestionnaire de fichiers, ce qui peut être très pratique.

Mais le terminal Linux est encore plus puissant. Vous pouvez utiliser des caractères de substitution simples directement dans les adresses de fichiers ou de répertoires. Par exemple, vous pouvez lister tous les fichiers commençant par f :

Ou vous pouvez même rechercher non seulement dans le dossier tmp, mais dans n'importe quel sous-dossier de votre dossier personnel :

Et tout cela fonctionnera, ce n'est peut-être pas toujours nécessaire et pratique. Mais dans certaines situations, cela peut être très utile. Ces fonctions sont implémentées au niveau du shell Bash, vous pouvez donc les utiliser dans n'importe quelle commande. Le shell regarde combien de fichiers ont été trouvés et appelle une commande pour chacun.

conclusions

C'est tout. Vous savez maintenant tout ce dont vous avez besoin non seulement pour écrire correctement le chemin d'accès au fichier Linux, mais également pour effectuer des actions plus complexes, par exemple, rechercher des fichiers ou naviguer dans des répertoires à l'aide de la commande cd. Si vous avez des questions, posez-les dans les commentaires !

Entrées associées :


Après avoir lu cet article, vous apprendrez ce qu'est frapper(interpréteur de commandes linux standard), apprenez à gérer les commandes standard : ls, cp, mv... comprendre le but des inodes, des liens durs et symboliques, et plus encore.

Ce didacticiel est destiné aux nouveaux utilisateurs de Linux et à ceux qui souhaitent revoir ou améliorer leur compréhension des principes de base de Linux, tels que la copie et le déplacement de fichiers, la création de liens, l'utilisation de commandes Linux standard ainsi que des redirections et des tuyaux. Dans cet article, vous trouverez de nombreux exemples pour clarifier le matériel présenté. Pour les débutants, la plupart des informations seront nouvelles, et pour les utilisateurs plus avancés, ce matériel peut être un excellent guide pour résumer les connaissances et les compétences existantes.

Introduction à bash

Coquille

Si vous utilisez Linux, vous savez qu'après la connexion, vous êtes accueilli par une invite de shell. Par exemple ceci :

\$

Si le shell graphique est chargé après la connexion, alors pour accéder à l'interpréteur de commandes, vous devez démarrer l'émulateur de terminal (gnome-terminal, xfce4-terminal, konsole, xterm, rxvt ...) ou basculer vers l'un des terminaux virtuels en cliquant CtrlAltF1 ou alors CtrlAltF2 etc.

L'invite du shell sur votre ordinateur peut différer de ce qui est montré dans l'exemple. Il peut contenir le nom d'utilisateur, le nom de l'ordinateur et le nom du répertoire de travail courant. Malgré toutes ces différences, le programme qui imprime cette invite s'appelle " coquille"(Shell), et très probablement votre shell de commande est un programme appelé frapper.

Courez-vous bash?

Vous pouvez vérifier si bash est en cours d'exécution avec la commande suivante :

\$ echo \ $ SHELL/ poubelle / bash

Si, à la suite de l'exécution de cette commande, vous recevez une erreur ou si sa sortie diffère de celle de l'exemple, il est alors possible que votre système n'utilise pas bash comme shell de commande. Malgré cela, la plupart du matériel sera pertinent, mais nous vous recommandons tout de même de passer à bash. Cela peut être fait (si bash est installé sur le système) avec la commande :

\$ frapper

Qu'est-ce que bash

Bash (acronyme de " B ourne- une Gain SH ell ") est l'interpréteur de commandes standard sur la plupart des systèmes Linux. Ses responsabilités incluent le traitement et l'exécution des commandes avec lesquelles l'utilisateur contrôle l'ordinateur. Une fois que vous avez terminé votre travail, vous pouvez terminer le processus shell. Après avoir appuyé sur les touches Ctrl, équipes sortir ou alors Se déconnecter le processus shell se termine et l'écran vous demande à nouveau votre nom d'utilisateur et votre mot de passe.

Utilisation de "cd"

Commençons à utiliser bash pour naviguer dans le système de fichiers. Tapez d'abord la commande suivante :

$ cd /

Avec cette commande, nous avons dit à bash que nous voulons passer au répertoire racine - / ... Tous les répertoires du système sont organisés en arborescence et / c'est son début (ou racine). Équipe CD sert à changer le répertoire de travail courant.

Chemins

Pour savoir où vous vous trouvez actuellement dans le système de fichiers (répertoire de travail courant), tapez :

\$ pwd /

Dans l'exemple ci-dessus / - argument de commande CD- appelé façon... C'est là que nous voulons nous déplacer dans le système de fichiers. Dans ce cas / - un chemin absolu, ce qui signifie que le chemin est spécifié par rapport au répertoire racine.

Chemins absolus

Voici quelques exemples de chemins absolus

/dev/usr/usr/bin/usr/local/bin

Comme vous l'avez peut-être remarqué, tous ces chemins sont unis par le fait qu'ils commencent par / ... En spécifiant le chemin/usr/local/bin en argument de la commande CD on lui dit d'aller dans le répertoire racine / , puis dans le répertoire usr, puis dans local et bin. Les chemins absolus commencent toujours par /

Chemins relatifs

Le deuxième type de chemins est appelé chemins relatifs. Frapper, équipe CD et d'autres commandes comptent ces chemins par rapport au répertoire courant. Les chemins relatifs ne commencent jamais par / ... Par exemple, si nous sommes dans /usr

\$ cd/usr

Ensuite, nous pouvons aller dans /usr/local/bin en utilisant le chemin relatif

\$ cd local / bac \$ pwd/usr/local/bin

Utilisation ".."

Les chemins relatifs peuvent contenir un ou plusieurs répertoires «..» ... Le ".." fait référence au répertoire parent de notre répertoire de travail. Exemple:

\$ pwd/usr/local/bin\$ cd .. \$ pwd/ usr / local

Comme vous pouvez le voir, la commande cd .."Nous fait monter d'un niveau."

Peut ajouter .. à un chemin relatif. Cela nous permettra de passer dans un répertoire qui est au même niveau que celui dans lequel nous sommes. Exemple:

\$ pwd/usr/local \ $ cd ../partager \$ pwd/ usr / partager

Exemples utilisant des chemins relatifs

Les chemins relatifs peuvent être assez délicats. Voici quelques exemples. Le résultat de l'exécution des commandes n'est pas affiché, essayez de déterminer dans quel répertoire vous vous retrouverez en utilisant bash.

\$ cd / bac \$ cd ../usr/share/zoneinfo \$ cd/usr/X11R6/bin \$ cd ../lib/X11 \$ cd/usr/bin \$ cd ../bin/../bin

Directeur de travail "."

Avant de terminer la conversation sur l'équipe CD il y a quelques autres choses qui méritent d'être mentionnées. Premièrement, il y a un autre répertoire spécial «.» qui pointe vers le répertoire courant. Ce répertoire est utilisé pour exécuter les fichiers exécutables situés dans le répertoire courant.

\$ ./monprog

Dans le dernier exemple, myprog est un fichier exécutable situé dans le répertoire courant qui sera lancé pour exécution.

cd et répertoire personnel de l'utilisateur

Pour accéder à votre répertoire personnel, vous devez taper

\$ CD

Sans argument, cd vous amènera à votre répertoire personnel. Le répertoire personnel est généralement /root pour le superutilisateur, et /home/nomutilisateur/ pour les utilisateurs normaux. Mais que se passe-t-il si nous voulons pointer vers un fichier spécifique situé dans le répertoire personnel. Par exemple, comme argument du programme 'Myprog'? Tu peux écrire:

\$ ./myprog /home/user/myfile.txt

Cependant, l'utilisation de chemins de fichiers absolus n'est pas toujours pratique. La même opération peut être effectuée en utilisant ~ –Thylds :

\$ ./monprog ~ / monfichier.txt

~ est un nom spécial qui pointe dans bash vers le répertoire personnel de l'utilisateur.

Répertoires personnels d'autres utilisateurs

Mais que se passe-t-il si nous devons pointer vers un fichier dans le répertoire personnel d'un autre utilisateur ? Pour ce faire, après le tilde, vous devez spécifier le nom de cet utilisateur. Par exemple, pour pointer vers le fichier fredsfile.txt situé dans le répertoire home de l'utilisateur fred :

\$ ./myprog ~ fred / fredsfile.txt

Commandes Linux

Introduction à ls

Vous connaissez probablement déjà la commande ls qui, invoqué sans argument, affiche une liste de fichiers stockés dans le répertoire de travail :

\$ cd/usr \$ ls X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

Si vous spécifiez l'option -une, vous pourrez voir tous les fichiers, y compris les fichiers cachés (dont les noms commencent par un point).

\$ ls -a... bin gentoo-x86 include libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

Liste détaillée des répertoires

Après la commande elle-même ls un ou plusieurs fichiers ou répertoires peuvent être spécifiés comme argument. Si vous spécifiez un nom de fichier, la commande ls affichera uniquement des informations sur ce fichier. Et si vous précisez le nom du répertoire, ls affichera tout son contenu. Option '-L' commandes ls peut être très utile si vous souhaitez connaître des informations plus détaillées à leur sujet en plus des noms de fichiers (autorisations de fichier, nom du propriétaire, heure de la dernière modification du fichier et sa taille).

L'exemple suivant montre l'utilisation de l'option '-L' pour afficher des informations sur les fichiers stockés dans le répertoire /usr

\$ ls -l / usr drwxr-xr-x 7 racine racine 168 24 novembre 14:02 X11R6 drwxr-xr-x 2 racine racine 14576 27 décembre 08:56 bin drwxr-xr-x 2 racine racine 8856 26 décembre 12:47 distfiles lrwxrwxrwx 1 racine racine 9 22 décembre 20:57 doc -> partager / doc drwxr-xr-x 62 root root 1856 27 décembre 15:54 gentoo-x86 drwxr-xr-x 4 root root 152 12 décembre 23:10 i686-linux drwxr-xr-x 4 root root 96 24 novembre 13:17 i686-pc-linux-gnu drwxr-xr-x 54 root root 5992 24 décembre 22:30 include lrwxrwxrwx 1 root root 10 décembre 22 20:57 info -> share / info drwxr-xr -x 28 root root 13552 26 déc 00:31 lib drwxr-xr-x 3 root root 72 25 nov 00:34 libexec drwxr-xr-x 8 root root 240 déc 22 20:57 local lrwxrwxrwx 1 root root 9 déc 22 20 : 57 man -> share / man lrwxrwxrwx 1 root root 11 déc 8 07:59 portage -> gentoo-x86 / drwxr-xr-x 60 root root 1864 8 déc 07:55 portage.old drwxr-xr-x 3 root 3096 22 décembre 20:57 sbin drwxr-xr-x 46 racine racine 1144 24 décembre 15:32 partager drwxr-xr-x 8 racine racine 328 26 décembre 00:07 src drwxr-xr-x 6 racine racine 176 24 novembre 14: 25 ssl lrwxrwxrwx 1 racine racine 10 22 décembre 20:57 tmp -> ../var/tmp

La première colonne affiche des informations sur les autorisations pour chaque fichier de la liste. (J'expliquerai un peu plus tard quelle lettre représente quoi) La colonne suivante indique le nombre de liens pour chaque élément de la liste. Les troisième et quatrième colonnes sont respectivement le propriétaire et le groupe du fichier. La cinquième colonne est la taille. Le sixième est l'heure à laquelle le fichier a été modifié pour la dernière fois (« heure de la dernière modification » ou mtime). La dernière colonne est le nom du fichier ou du répertoire (S'il s'agit d'un lien, alors après le " –> 'Représente le nom de l'objet auquel il se réfère).

Comment voir uniquement les répertoires

Parfois, il est nécessaire de consulter les informations uniquement sur les répertoires, et non sur l'ensemble de leur contenu. L'option aidera à faire face à cette tâche. '-RÉ' qui indique à la commande d'afficher des informations sur les répertoires uniquement. Exemple:

\$ ls -dl / usr / usr / bin / usr / X11R6 / bin ../share drwxr-xr-x 4 root root 96 18 déc 18:17 ../share drwxr-xr-x 17 root root 576 24 déc 09:03 / usr drwxr-xr-x 2 root root 3192 26 déc 12:52 / usr / X11R6 / bin drwxr-xr-x 2 root root 14576 27 déc 08:56 / usr / bin

Liste récursive et informations sur les inodes

Action d'option '-R' opposé à l'action '-RÉ'... Il vous permet d'afficher récursivement des informations sur les fichiers d'un répertoire. Tout d'abord, le contenu du répertoire de niveau supérieur est affiché, puis le contenu de tous les sous-répertoires est affiché à tour de rôle, et ainsi de suite. La sortie de cette commande peut être assez longue, nous n'en donnons donc pas d'exemple, mais vous pouvez l'essayer vous-même en tapant ' ls -R' ou alors ' ls -Rl‘.

Enfin, l'option '-JE' utilisé pour afficher les inodes de chaque objet du système de fichiers.

\$ ls -i / usr 1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 local 13408 share 8316 distfiles 1517 include 776 man 23779 src 43 doc 1386 info 93892 portage 36737 ssl 70744 1585t lib84 732 portage

Que sont les inodes ?

Chaque objet du système de fichiers (fichier, répertoire...) possède son propre numéro unique, appelé inode(numéro d'inode). Ces informations peuvent sembler triviales, mais comprendre la fonction des inodes vous aidera à comprendre de nombreuses opérations sur le système de fichiers. Par exemple, regardons «.» et «..» sous forme de liens présents dans chaque annuaire. Pour comprendre ce qu'est un annuaire «..» , trouvez l'inode du répertoire /use/local

\$ ls -id / usr / local 5120 / usr / local

Comme vous pouvez le voir, l'inode du répertoire /usr/local est 5120. Voyons maintenant quel inode le répertoire /usr/local/bin/.. a :

\$ ls -id / usr / local / bin / .. 5120/usr/local/bin/..

Il s'avère que les inodes des répertoires /usr/local et /usr/local/bin/.. sont les mêmes ! Cela signifie que l'inode 5120 est référencé par deux noms : /usr/local et /usr/local/bin/.. C'est-à-dire qu'il s'agit de deux noms différents du même répertoire. Chaque inode pointe vers un emplacement spécifique sur le disque.

Chaque inode peut avoir plusieurs noms d'objet de système de fichiers qui lui sont associés. Le nombre de « synonymes » d'un fichier (objets du système de fichiers faisant référence à un inode) indique le nombre dans la deuxième colonne de « » ls -l‘.

\$ ls -dl / usr / local drwxr-xr-x 8 root root 240 22 déc 20:57 / usr / local

Dans cet exemple, vous pouvez voir (deuxième colonne) que le répertoire /usr/local est référencé par 8 objets de système de fichiers différents. Voici leurs noms :

/usr/local/usr/local/. / usr / local / bin / .. / usr / local / games / .. / usr / local / lib / .. / usr / local / sbin / .. / usr / local / share / .. / usr / local / src / ..

mkdir

Regardons la commande mkdir... Il sert à créer de nouveaux répertoires. L'exemple suivant illustre la création de trois nouveaux répertoires (tic, tac, toe) dans le répertoire /tmp

\$ cd/tmp $ mkdir tic tac orteil

Par défaut, la commande mkdir ne peut pas créer une structure de répertoires imbriqués. Par conséquent, si vous devez créer plusieurs répertoires imbriqués ( magnifique), alors vous devrez appeler cette commande trois fois une par une :

\$ mkdir won / der / ful mkdir : impossible de créer le répertoire "won/der/ful" : aucun fichier ou répertoire de ce type \ $ mkdir a gagné \$ mkdir gagné / der \$ mkdir won / der / ful

Vous pouvez simplifier cette opération en ajoutant l'option '-P'à la commande mkdir. Cette option vous permet de créer une structure de répertoires imbriqués :

\$ mkdir -p facile / comme / tarte

Pour en savoir plus sur les capacités de cet utilitaire, lisez l'aide, qui est invoquée par la commande homme mkdir... L'aide est disponible pour presque toutes les commandes de ce manuel (par exemple l'homme), à l'exception CD puisque il est intégré à bash (pour de telles commandes, l'aide est appelée comme ceci : CD d'aide)

toucher

Passons à l'apprentissage des commandes cp et mv, utilisé pour copier, renommer et déplacer des fichiers et des répertoires. Mais avant cela, créez un fichier vide dans le répertoire /tmp à l'aide de la commande toucher:

\$ cd/tmp \$ touchez moi

Équipe toucher met à jour l'heure du dernier accès au fichier (la sixième colonne de la sortie de la commande ls -l) s'il existe déjà ou crée un nouveau fichier vide s'il n'existe pas déjà. Après cette opération, nous devrions avoir un fichier vide / tmp / copyme.

écho

Maintenant que nous avons un fichier vide, écrivez-y une chaîne de texte en utilisant la commande écho qui affiche l'argument qui lui est passé sur la sortie standard (un terminal texte dans notre cas).

\$ echo "premier fichier" premierfichier

Pour écrire une ligne dans notre fichier, redirigez-y la sortie de la commande écho:

\$ echo "premierfichier"> copiez-moi

Signer > (more) indique au shell de rediriger la sortie de la commande de gauche vers le fichier de droite. Si un fichier portant ce nom n'existe pas, il sera créé automatiquement. Et si un tel fichier existe déjà, alors il sera écrasé (tout son contenu sera effacé avant d'écrire notre ligne). Équipe 'Ls -l' montrera que la taille de notre fichier est maintenant de 10 octets - neuf octets sont occupés par le mot 'firstfile' et un octet est un caractère de saut de ligne.

\$ ls -l copyme-rw-r - r-- 1 root root 10 décembre 28 14:13 copyme

chat et cp

Pour sortir le contenu d'un fichier sur le terminal, utilisez la commande chat:

\$ copie de chat premierfichier

Nous pouvons maintenant commencer à analyser les fonctionnalités de base de la commande cp... Cette commande prend deux arguments. Le premier est le nom d'un fichier existant ('copyme'), le second est le nom de la nouvelle copie que nous voulons faire ('copiedme').

\$ cp copiez-moi copié-moi

Nous pouvons nous assurer que la nouvelle copie du fichier a un numéro d'inode différent (cela signifie que nous avons reçu un tout nouveau fichier séparé, et pas seulement un lien vers l'ancien)

\$ ls -i copyme copiedme 648284 copié-moi 650704 copie-moi

mv

Appliquons maintenant la commande mv pour renommer le fichier ("copiedme" -> "movedme"). Le numéro d'inode ne change pas après cette opération, seul le nom du fichier change.

\$ mv m'a copié m'a déplacé \$ ls -je m'a déplacé 648284 m'a déplacé

Le numéro d'inode ne change pas uniquement si le fichier renommé reste dans le système de fichiers où se trouvait le fichier d'origine. Nous examinerons de plus près la conception du système de fichiers dans une partie ultérieure de ce didacticiel.

Équipe mv vous permet non seulement de renommer des fichiers, mais aussi de les déplacer. Par exemple, pour déplacer un fichier /var/tmp/monfichier.txt au répertoire / accueil / utilisateur il faut donner la commande :

\$ mv /var/tmp/myfile.txt / home / user

Le fichier sera déplacé vers le répertoire personnel de l'utilisateur utilisateur même s'il se trouve dans un système de fichiers différent (dans ce cas, le fichier sera copié dans un nouvel emplacement après quoi l'original sera supprimé). Comme vous l'avez peut-être deviné, le déplacement d'un fichier vers un autre système de fichiers modifie son inode. C'est parce que chaque système de fichiers a son propre ensemble d'inodes.

Il convient de noter qu'il est possible que le numéro d'inode nouvellement attribué coïncide avec l'ancien, mais il est extrêmement petit.

Pour déplacer plusieurs fichiers en même temps dans un même répertoire, vous devez écrire :

\$ mv /var/tmp/myfile1.txt /var/tmp/myfile2.txt / home / user \$ mv -t / home / user /var/tmp/myfile1.txt /var/tmp/myfile2.txt

Si vous ajoutez l'option '-V', un rapport sur l'opération effectuée s'affichera à l'écran :

\$ mv -vt / home / user /var/tmp/myfile1.txt /var/tmp/myfile2.txt"/var/tmp/myfile1.txt" -> "/home/user/myfile1.txt" "/var/tmp/myfile2.txt" -> "/home/user/myfile2.txt"