Gestion des fichiers et répertoires Linux


Nous savons que la structure de répertoires de Linux est une structure arborescente et que le répertoire de niveau supérieur est le répertoire racine /.

Monter d'autres répertoires les ajoute à l'arborescence et les démonter les supprime.

Avant de commencer ce tutoriel, nous devons savoir ce que sont les chemins absolus et les chemins relatifs.

  • Chemin absolu :
    Le chemin s'écrit à partir du répertoire racine /, par exemple : répertoire /usr/share/doc.

  • Chemin relatif :
    Le chemin est écrit sans commencer par /, par exemple, de /usr/share/doc à /usr/share/man En bas, cela peut être écrit comme : cd ../man C'est comment écrire des chemins relatifs !


Commandes courantes pour le traitement des répertoires

Jetons ensuite un coup d'œil à quelques commandes courantes pour le traitement des répertoires :

  • ls : Répertoire de la liste

  • cd : Changer de répertoire

  • pwd : Afficher le répertoire actuel

  • mkdir : Créer un nouveau répertoire

  • rmdir : Supprimer un répertoire vide

  • cp : Copier un fichier ou un répertoire

  • rm : Supprimer des fichiers ou des répertoires

Vous pouvez utiliser man [command] pour afficher la documentation d'utilisation de chaque commande, telle que : man cp .

ls (répertoire de liste)

Dans les systèmes Linux, la commande ls est probablement la plus couramment exécutée.

Syntaxe :

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

Options et paramètres :

  • -a : Tous les fichiers, y compris les fichiers cachés (fichiers commençant par .) sont répertoriés ensemble Venez out (couramment utilisé)

  • -d : répertorie uniquement le répertoire lui-même, pas les données de fichier dans le répertoire (couramment utilisé)

  • - l : Liste les longues chaînes de données, y compris les attributs de fichier, les autorisations, etc. ; (couramment utilisé)

Liste tous les fichiers du répertoire personnel (y compris les attributs et les fichiers cachés)

[root@www ~]# ls -al ~

cd (Change directory)

cd est l'abréviation de Change Directory. C'est la commande utilisée pour changer le répertoire de travail.

Syntaxe :

 cd [相对路径或绝对路径]
rrree

Vous devriez être capable de bien comprendre la commande cd après l'avoir exécutée plusieurs fois.

pwd (afficher le répertoire actuel)

pwd est l'abréviation de Print Working Directory, qui est la commande pour afficher le répertoire actuel.

#使用 mkdir 命令创建w3cschool.cc目录
[root@www ~]# mkdir w3cschool.cc

#使用绝对路径切换到w3cschool.cc目录
[root@www ~]# cd /root/w3cschool.cc/

#使用相对路径切换到w3cschool.cc目录
[root@www ~]# cd ./w3cschool.cc/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www w3cschool.cc]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

mkdir (créer un nouveau répertoire)

Si vous souhaitez créer un nouveau répertoire, utilisez mkdir (make directory).

Syntaxe :

[root@www ~]# pwd [-P]
选项与参数:
-P  :显示出确实的路径,而非使用连结 (link) 路径。

范例:单纯显示出目前的工作目录:
[root@www ~]# pwd
/root   <== 显示出目录啦~

范例:显示出实际的工作目录,而非连结档本身的目录名而已
[root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail   <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

Options et paramètres :

  • -m : Autorisations du fichier de configuration ! Configuration directe, pas besoin de regarder les autorisations par défaut (umask)~

  • -p : Vous aide à créer directement les répertoires requis (y compris le répertoire de niveau supérieur) de manière récursive !

Exemple : Veuillez essayer de créer plusieurs nouveaux répertoires sous /tmp :

mkdir [-mp] 目录名称

Ajout de cette option -p, vous pouvez créer plusieurs calques pour vous-même Table des matières !

Exemple : Créer un répertoire avec les autorisations rwx--x--x

[root@www ~]# cd /tmp
[root@www tmp]# mkdir test    <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4

Dans la partie autorisations ci-dessus, si -m n'est pas ajouté pour forcer les propriétés de configuration, le système utilisera la valeur par défaut propriétés.

Si nous utilisons -m, comme dans l'exemple ci-dessus, nous donnons -m 711 pour donner au nouveau répertoire les autorisations drwx--x--x.

rmdir (supprimer les répertoires vides)

Syntaxe :

[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

Options et paramètres :

  • -p : Aussi supprimer le répertoire "vide" au niveau supérieur

Supprimer le répertoire w3cschool.cc

 rmdir [-p] 目录名称

Exemple : le répertoire qui sera créé dans l'exemple mkdir (sous / tmp) Supprimez-le !

[root@www tmp]# rmdir w3cschool.cc/

Utilisez l'option -p pour supprimer test1/test2/test3/test4 immédiatement.

Cependant, il convient de noter que ce rmdir ne peut supprimer que les répertoires vides. Vous pouvez utiliser la commande rm pour supprimer les répertoires non vides.

cp (copier des fichiers ou des répertoires)

cp signifie copier des fichiers et des répertoires.

Syntaxe :

[root@www tmp]# ls -l   <==看看有多少目录存在?
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test   <==可直接删除掉,没问题
[root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

Options et paramètres :

  • -a : équivalent à -pdr Quant à pdr, veuillez vous référer aux instructions suivantes ; (couramment utilisé)

  • -d : Si le fichier source est un attribut d'un fichier lien, copiez l'attribut du fichier lien au lieu du fichier lui-même

  • <🎜 ; >
  • -f : Cela signifie forcer. Si le fichier cible existe déjà et ne peut pas être ouvert, supprimez-le et réessayez

  • -i : Si le fichier cible (destination) ; S'il existe déjà, il demandera d'abord l'action lors de l'écrasement (couramment utilisé)

  • -l : créer un fichier de lien d'un lien physique au lieu de copier le fichier lui-même < 🎜 ; >

  • -p : copiez le fichier avec ses attributs au lieu d'utiliser les attributs par défaut (couramment utilisés pour la sauvegarde)
  • -r : la récursivité continue ; Copier, utilisé pour le comportement de copie de répertoire ; (couramment utilisé)
  • -s : Copier dans un fichier de lien symbolique (lien symbolique), c'est-à-dire un fichier "raccourci"
  •  ;

  • -u : Mettez à niveau la destination uniquement si la destination est plus ancienne que la source !
  • Utilisez l'identité racine pour copier le .bashrc du répertoire personnel vers /tmp et renommez-le en bashr
  • [root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
    [root@www ~]# cp [options] source1 source2 source3 .... directory

    rm (supprimer des fichiers ou des répertoires)

    Syntaxe :

    [root@www ~]# cp ~/.bashrc /tmp/bashrc
    [root@www ~]# cp -i ~/.bashrc /tmp/bashrc
    cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

    Options et paramètres :

      -f : Cela signifie forcer, ignorer les fichiers qui n'existent pas, et aucun message d'avertissement n'apparaîtra
    • < 🎜 ; >

      -i : Mode interactif, il sera demandé à l'utilisateur s'il doit agir avant la suppression
    • -r : Suppression récursive ! Il est le plus couramment utilisé pour supprimer des répertoires ! C'est une option très dangereuse ! ! !

    • Supprimez le bashrc qui vient d'être créé dans l'exemple cp !
    •  rm [-fir] 文件或目录
    Si vous ajoutez l'option -i, il vous demandera de manière proactive de vous empêcher de supprimer le mauvais nom de fichier !

    mv (déplacer des fichiers et des répertoires, ou changer de nom)

    Syntaxe :

    [root@www tmp]# rm -i bashrc
    rm: remove regular file `bashrc'? y

    Options et paramètres :

    -f : force signifie forcer. Si le fichier cible existe déjà, il sera écrasé sans demander
    • -i : Si le fichier cible (destination) existe déjà, il sera demandé s'il doit le faire. écrase-le !
    • -u : Si le fichier cible existe déjà et que la source est relativement nouvelle, il sera mis à jour (update)
    • Copier un fichier et créez un répertoire, déplacez les fichiers dans le répertoire
    • [root@www ~]# mv [-fiu] source destination
      [root@www ~]# mv [options] source1 source2 source3 .... directory

      Déplacez un certain fichier vers un certain répertoire, c'est tout !

      Renommez le répertoire tout à l'heure en mvtest2

      [root@www ~]# cd /tmp
      [root@www tmp]# cp ~/.bashrc bashrc
      [root@www tmp]# mkdir mvtest
      [root@www tmp]# mv bashrc mvtest

      Affichage du contenu du fichier Linux

      Utilisez la commande suivante dans le système Linux pour afficher le contenu du fichier :

      • cat commence à afficher le contenu du fichier à partir de la première ligne

      • tac commence à l'afficher à partir de la dernière ligne. On peut voir que tac est cat écrit à l'envers !

      • nl Une fois affiché, affichez le numéro de ligne !

      • plus affiche le contenu du fichier page par page

      • moins c'est semblable à plus, mais mieux que plus, il peut avancer Tourner la page !

      • la tête ne regarde que les premières lignes

      • la queue ne regarde que les lignes de queue

      Vous pouvez utiliser man [command] pour afficher la documentation d'utilisation de chaque commande, telle que : man cp.

      cat

      Afficher le contenu du fichier à partir de la première ligne

      Syntaxe :

      [root@www tmp]# mv mvtest mvtest2

      Options et paramètres :

      • -A : équivalent à l'option d'intégration de -vET, qui peut répertorier certains caractères spéciaux au lieu de simples espaces ;

      • -b : répertorier les numéros de ligne, uniquement pour les caractères non vides ; lignes Les numéros de ligne sont affichés, les lignes vides ne sont pas marquées par des numéros de ligne !

      • -E : affiche l'octet de saut de ligne de fin $ ;

      • -n : imprime le numéro de ligne, ainsi que les lignes vides. un numéro de ligne, différent de l'option -b

      • -T : affichez le bouton [tab] comme ^I ; - v : Liste quelques caractères spéciaux invisibles

      • Vérifiez le contenu de /etc/issue :

        cat [-AbEnTv]
      • tac

      tac et La commande cat est juste au contraire. Le contenu du fichier est affiché à partir de la dernière ligne. On voit que tac est cat écrit à l'envers ! Par exemple :

      [root@www ~]# cat /etc/issue
      CentOS release 6.4 (Final)
      Kernel \r on an \m

      nl

      Afficher le numéro de ligne

      Syntaxe :

      [root@www ~]# tac /etc/issue
      
      Kernel \r on an \m
      CentOS release 6.4 (Final)

      Options et paramètres :

      -b : Spécifiez la manière de spécifier le numéro de ligne. Il existe deux manières principales :

      . -b a : indique que, qu'il s'agisse d'une ligne vide ou non, le numéro de ligne sera également répertorié (similaire à cat -n ); -b t : S'il y a une ligne vide, ne listez pas le numéro de ligne sur la ligne vide (valeur par défaut

      • -n : Listez la représentation du numéro de ligne, il y en a trois principales) ; méthodes :
        -n ln : Le numéro de ligne est affiché à l'extrême gauche de l'écran

        -n rn : Le numéro de ligne est affiché à l'extrême droite de sa propre colonne sans ajouter 0
      • ; -n rz : Le numéro de ligne est affiché à l'extrême droite de son propre champ, et 0 est ajouté


      • -w : Le nombre de chiffres occupés par le champ du numéro de ligne ;

      • Exemple 1 : Utilisez nl pour lister le contenu de /etc/issue

        nl [-bnw] 文件

        plus
      Retourner page par page

      [root@www ~]# nl /etc/issue
           1  CentOS release 6.4 (Final)
           2  Kernel \r on an \m

      Pendant l'exécution du programme more, vous avez plusieurs touches sur lesquelles appuyer :

      Touche Espace (espace) : signifie tourner une page

      • Entrée : représente le défilement vers le bas "d'une ligne"

      • /string : signifie rechercher le mot-clé "string" dans le contenu affiché

      • :f : afficher immédiatement le nom du fichier et le nombre de lignes actuellement ; affiché;

      • q : signifie quitter plus immédiatement et ne plus afficher le contenu du fichier.

      • b ou [ctrl]-b : signifie retourner les pages en arrière, mais cette action n'est utile que pour les fichiers, pas pour les pipelines.

      less

      En tournant page par page, l'exemple suivant affiche le contenu du fichier /etc/man.config :

      [root@www ~]# more /etc/man.config
      #
      # Generated automatically from man.conf.in by the
      # configure script.
      #
      # man.conf from man-1.6d
      ....(中间省略)....
      --More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令

      less peut être saisie lors de l'exécution Les commandes sont :

      • Touche Espace : descendre d'une page

      • [pagedown] : descendre d'une page <🎜 ; >

      • [pageup] : faites défiler une page vers le haut ;

      • /string : recherchez vers le bas "string" ;

      • ?String : La fonction de recherche vers le haut de "string"

      • n : Répéter la recherche précédente (liée à / ou ?!)

      • N : Répéter la recherche précédente en sens inverse (liée à / ou ?!)

      • q : Quitter le programme less

      head

      Supprimer les premières lignes du fichier

      Syntaxe :

      [root@www ~]# less /etc/man.config
      #
      # Generated automatically from man.conf.in by the
      # configure script.
      #
      # man.conf from man-1.6d
      ....(中间省略)....
      :   <== 这里可以等待你输入命令!

      Options et paramètres :

      • -n : Suivi d'un chiffre, cela signifie combien de lignes sont affichées

      • head [-n number] 文件
      Par défaut, les 10 premières lignes sont affichées ! Pour afficher les 20 premières lignes, il faut faire ceci :

      [root@www ~]# head /etc/man.config

      tail

      Supprimer les dernières lignes du fichier

      Syntaxe :

      [root@www ~]# head -n 20 /etc/man.config

      Options et paramètres :

      • -n : suivi d'un chiffre, indiquant le nombre de lignes à afficher

      • -f : indiquant une détection continue de le nom de fichier suivant, vous devez attendre que [ctrl]-c soit enfoncé pour terminer la détection de queue

      • tail [-n number] 文件