Accéder aux Systèmes de Fichiers dans Red Hat Enterprise Linux

Red Hat Enterprise LinuxRed Hat Enterprise LinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous acquerrez une expérience pratique dans la gestion des systèmes de fichiers Linux sur un système Red Hat Enterprise Linux (RHEL). Vous apprendrez à identifier les systèmes de fichiers et les périphériques de blocs, à examiner l'utilisation du disque à l'aide de df et du, et à pratiquer le montage et le démontage manuels des systèmes de fichiers.

De plus, ce laboratoire vous guidera dans la localisation efficace des fichiers à l'aide de commandes telles que locate et find, vous permettant de rechercher des fichiers en fonction de divers critères tels que le nom, la propriété, les permissions, la taille, l'heure et le type de fichier.

Identifier les systèmes de fichiers et les périphériques de blocs

Dans cette étape, vous apprendrez à identifier les systèmes de fichiers et les périphériques de blocs sur un système Red Hat Enterprise Linux. Comprendre comment le stockage est organisé est fondamental pour l'administration système. Nous explorerons diverses commandes pour lister et examiner les périphériques de blocs et leurs systèmes de fichiers associés.

Tout d'abord, comprenons quelques concepts de base :

  • Périphérique de bloc (Block Device) : Un périphérique de bloc est un fichier qui fournit un accès de bas niveau aux périphériques de stockage. Les exemples incluent les disques durs, les SSD et les lecteurs USB. Sous Linux, ceux-ci se trouvent généralement dans le répertoire /dev.
  • Partition : Une partition est une division logique d'un périphérique de stockage physique. Un seul disque dur peut avoir plusieurs partitions, chacune formatée avec un système de fichiers différent ou utilisée à des fins différentes.
  • Système de fichiers (File System) : Un système de fichiers est une méthode et une structure de données qu'un système d'exploitation utilise pour contrôler la manière dont les données sont stockées et récupérées. Il organise les données en fichiers et en répertoires. Les systèmes de fichiers Linux courants incluent XFS et ext4.
  • Point de montage (Mount Point) : Un point de montage est un répertoire vide dans la hiérarchie du système de fichiers où un système de fichiers est attaché ou "monté" pour rendre son contenu accessible.

Commençons par lister les périphériques de blocs disponibles sur votre système à l'aide de la commande lsblk. Cette commande fournit une vue d'ensemble en forme d'arborescence de tous les périphériques de blocs et de leurs partitions.

lsblk

Vous devriez voir une sortie similaire à celle-ci, montrant des périphériques comme vda, vdb, etc., qui représentent des périphériques de disque virtuels dans votre environnement de conteneur :

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0   40G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  100M  0 part /boot/efi
└─vda3 253:3    0 39.9G  0 part /
vdb    253:16   0   40G  0 disk

Dans la sortie :

  • NAME : Le nom du périphérique de bloc (par exemple, vda, vdb) ou de la partition (par exemple, vda1, vda2).
  • MAJ:MIN : Numéros de périphérique majeur et mineur.
  • RM : Périphérique amovible (1 si amovible, 0 sinon).
  • SIZE : La taille du périphérique ou de la partition.
  • RO : Lecture seule (1 si lecture seule, 0 sinon).
  • TYPE : Type du périphérique (par exemple, disk, part pour partition).
  • MOUNTPOINTS : Où le périphérique ou la partition est actuellement monté.

Ensuite, examinons les systèmes de fichiers et leur utilisation avec la commande df. La commande df rapporte l'utilisation de l'espace disque du système de fichiers.

df

La sortie affichera divers systèmes de fichiers, leur taille totale, l'espace utilisé, l'espace disponible et les points de montage :

Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs            4096       0      4096   0% /dev
tmpfs            1822216       0   1822216   0% /dev/shm
tmpfs             728888     616    728272   1% /run
efivarfs             256       9       243   4% /sys/firmware/efi/efivars
/dev/vda3       41773036 3628732  38144304   9% /
/dev/vda2         102156    7198     94958   8% /boot/efi
tmpfs             364440       0    364440   0% /run/user/1000

Pour rendre la sortie plus lisible, en particulier pour les tailles, vous pouvez utiliser l'option -h pour un format lisible par l'homme (par exemple, M pour MiB, G pour GiB).

df -h

Vous verrez les tailles dans un format plus compréhensible :

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           712M  616K  712M   1% /run
efivarfs        256K  8.5K  243K   4% /sys/firmware/efi/efivars
/dev/vda3        40G  3.5G   37G   9% /
/dev/vda2       100M  7.1M   93M   8% /boot/efi
tmpfs           356M     0  356M   0% /run/user/1000

Enfin, utilisons la commande lsblk -fp pour lister le chemin complet des périphériques, leurs UUID (Identificateurs Uniques Universels) et les types de systèmes de fichiers. Les UUID sont des identificateurs stables qui restent les mêmes même si les noms des périphériques changent, ce qui les rend utiles pour un montage cohérent.

lsblk -fp

La sortie inclura les UUID et les types de systèmes de fichiers :

NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
/dev/vda
├─/dev/vda1
├─/dev/vda2 vfat   FAT16       E52E-0564                              92.7M     7% /boot/efi
└─/dev/vda3 xfs          root  4c234c8b-4f67-4d65-abb5-06753b1ec236   36.4G     9% /
/dev/vdb

Notez la colonne UUID, qui fournit un identificateur unique pour chaque système de fichiers. Ceci est crucial pour monter de manière fiable les systèmes de fichiers, en particulier dans les fichiers de configuration comme /etc/fstab.

Examiner l'utilisation du système de fichiers avec df et du

Dans cette étape, vous approfondirez l'examen de l'utilisation du système de fichiers à l'aide des commandes df et du. Alors que df fournit une vue d'ensemble de l'utilisation de l'espace disque pour les systèmes de fichiers montés, du (utilisation du disque - disk usage) est utilisé pour estimer l'utilisation de l'espace fichier pour des fichiers ou des répertoires spécifiques. Comprendre la différence et quand utiliser chaque commande est crucial pour une gestion efficace de l'espace disque.

Commençons par revisiter la commande df avec son option lisible par l'homme. Cette commande est excellente pour obtenir un résumé rapide de l'espace utilisé et disponible sur tous les systèmes de fichiers montés.

df -h

La sortie affichera l'utilisation du disque dans un format facile à lire (par exemple, G pour gigaoctets, M pour mégaoctets) :

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        892M     0  892M   0% /dev
tmpfs           915M     0  915M   0% /dev/shm
tmpfs           915M   17M  899M   2% /run
tmpfs           915M     0  915M   0% /sys/fs/cgroup
/dev/vda4       8.0G  1.4G  6.7G  17% /
/dev/vda3      1014M  166M  849M  17% /boot
tmpfs           183M     0  183M   0% /run/user/1000

Maintenant, explorons la commande du. Contrairement à df, du calcule l'espace disque utilisé par les fichiers et les répertoires dans un chemin spécifié. Ceci est particulièrement utile lorsque vous souhaitez savoir quels répertoires ou fichiers consomment le plus d'espace.

Pour voir l'utilisation du disque de votre répertoire actuel (~/project), utilisez du sans aucun argument. Cela listera la taille de chaque fichier et sous-répertoire dans ~/project.

du

La sortie peut être volumineuse, affichant les tailles en kilo-octets par défaut :

4       ./.config/xfce4/xfconf/xfce-perchannel-xml
8       ./.config/xfce4/xfconf
12      ./.config/xfce4
16      ./.config
4       ./.local/share/nano
8       ./.local/share
12      ./.local
28      .

Pour rendre la sortie plus lisible, comme df -h, vous pouvez utiliser l'option -h avec du.

du -h

Cela affichera les tailles en unités lisibles par l'homme :

4.0K    ./.config/xfce4/xfconf/xfce-perchannel-xml
8.0K    ./.config/xfce4/xfconf
12K     ./.config/xfce4
16K     ./.config
4.0K    ./.local/share/nano
8.0K    ./.local/share
12K     ./.local
28K     .

Souvent, vous êtes intéressé par la taille totale d'un répertoire plutôt que par la taille de chaque fichier et sous-répertoire individuel. Pour cela, vous pouvez utiliser l'option -s (summary - résumé) avec -h. Vérifions la taille totale de votre répertoire personnel (~).

du -sh ~

Cette commande affichera la taille totale de votre répertoire personnel :

48K     /home/labex

Créons quelques fichiers pour voir comment du rapporte leurs tailles. Nous allons créer un répertoire nommé test_data et ensuite créer quelques fichiers à l'intérieur.

Tout d'abord, créez le répertoire :

mkdir ~/project/test_data

Maintenant, naviguez dans le répertoire test_data :

cd ~/project/test_data

Ensuite, créez quelques fichiers avec du contenu. Nous utiliserons la commande head pour générer des fichiers de tailles spécifiques.

head -c 1K < /dev/urandom > file1.txt
head -c 5K < /dev/urandom > file2.txt
head -c 10K < /dev/urandom > file3.txt

Maintenant, utilisez du -h pour voir les tailles de ces nouveaux fichiers et du répertoire test_data.

du -h

Vous devriez voir une sortie similaire à celle-ci :

1.0K    ./file1.txt
5.0K    ./file2.txt
10K     ./file3.txt
24K     .

La dernière ligne (24K .) affiche la taille totale du répertoire actuel (., qui est ~/project/test_data).

Enfin, revenons à votre répertoire ~/project et vérifions la taille totale de test_data en utilisant du -sh.

cd ~/project
du -sh test_data

Cela affichera la taille résumée du répertoire test_data :

24K     test_data

Cela démontre comment du peut être utilisé pour identifier la consommation d'espace disque dans des répertoires spécifiques, vous aidant à gérer efficacement le stockage.

Monter et démonter manuellement des systèmes de fichiers

Dans cette étape, vous apprendrez à monter et démonter manuellement des systèmes de fichiers. Monter un système de fichiers rend son contenu accessible via un répertoire spécifique (point de montage) dans la hiérarchie du système de fichiers. Le démontage détache le système de fichiers de son point de montage, rendant son contenu inaccessible jusqu'à ce qu'il soit remonté. Il s'agit d'une compétence essentielle pour la gestion des supports amovibles, du stockage temporaire ou des nouvelles partitions de disque.

Pour cet exercice, nous utiliserons l'un des périphériques de blocs non montés disponibles dans votre environnement de machine virtuelle LabEx. À partir de l'étape précédente, vous auriez dû voir le périphérique /dev/vdb qui n'est actuellement pas monté. Nous utiliserons /dev/vdb pour cette étape.

Tout d'abord, confirmons les périphériques de blocs non montés disponibles à l'aide de lsblk.

lsblk

Vous devriez voir /dev/vdb répertorié sans aucun point de montage.

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0   40G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  100M  0 part /boot/efi
└─vda3 253:3    0 39.9G  0 part /
vdb    253:16   0   40G  0 disk

Avant de pouvoir monter un système de fichiers, vous avez besoin d'un point de montage, qui est un répertoire vide. Il est courant d'utiliser /mnt pour les montages temporaires ou de créer un sous-répertoire à l'intérieur. Créons un nouveau répertoire nommé mydata à l'intérieur de votre répertoire ~/project pour servir de point de montage.

mkdir ~/project/mydata

Maintenant, nous devons formater le périphérique /dev/vdb avec un système de fichiers. Nous utiliserons le système de fichiers XFS, qui est le système par défaut pour Red Hat Enterprise Linux. Soyez prudent avec cette commande, car elle effacera toutes les données sur le périphérique spécifié.

sudo mkfs.xfs /dev/vdb

Vous verrez une sortie indiquant la création du système de fichiers XFS :

meta-data=/dev/vdb               isize=512    agcount=4, agsize=2621440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=10485760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Maintenant que /dev/vdb a un système de fichiers XFS, vous pouvez le monter sur votre point de montage ~/project/mydata. La commande mount nécessite des privilèges sudo.

sudo mount /dev/vdb ~/project/mydata

Pour vérifier que le système de fichiers est monté avec succès, utilisez à nouveau la commande df -h. Vous devriez voir /dev/vdb répertorié avec /home/labex/project/mydata comme point de montage.

df -h

Recherchez /dev/vdb dans la sortie :

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/vdb         40G  318M   40G   1% /home/labex/project/mydata

Maintenant, vous pouvez créer des fichiers et des répertoires à l'intérieur de ~/project/mydata, et ils seront stockés sur le périphérique /dev/vdb. Créons un fichier de test :

sudo touch ~/project/mydata/testfile.txt

Vous pouvez lister le contenu de ~/project/mydata pour confirmer la création du fichier :

ls -l ~/project/mydata

Vous devriez voir testfile.txt répertorié :

total 0
-rw-r--r--. 1 root root 0 Jun 16 11:09 testfile.txt

Lorsque vous avez fini d'utiliser un système de fichiers monté, il est important de le démonter pour éviter la corruption des données, en particulier avant de retirer un périphérique physique. Utilisez la commande umount pour démonter le système de fichiers.

sudo umount ~/project/mydata

Si la commande de démontage échoue avec une erreur "target is busy" (la cible est occupée), cela signifie qu'un processus accède toujours au point de montage. Cela se produit souvent si votre répertoire de travail actuel se trouve à l'intérieur du système de fichiers monté. Pour résoudre ce problème, changez votre répertoire de travail actuel vers un emplacement en dehors du point de montage, par exemple, votre répertoire personnel (~).

cd ~

Ensuite, essayez de démonter à nouveau :

sudo umount ~/project/mydata

Après le démontage, vérifiez que /dev/vdb n'est plus monté en vérifiant à nouveau df -h.

df -h

Vous ne devriez plus voir /dev/vdb monté sur /home/labex/project/mydata.

Filesystem      Size  Used Avail Use% Mounted on
...
## /dev/vdb should not be listed here anymore

Ceci termine le processus de montage et de démontage manuels d'un système de fichiers.

Localiser des fichiers par nom avec locate et find

Dans cette étape, vous apprendrez à localiser des fichiers sur votre système à l'aide de deux commandes puissantes : locate et find. Les deux commandes vous aident à rechercher des fichiers, mais elles fonctionnent différemment et sont adaptées à différents scénarios.

Utilisation de la commande locate

La commande locate est très rapide car elle recherche dans une base de données pré-construite de noms et de chemins de fichiers. Cependant, cela signifie qu'elle pourrait ne pas trouver les fichiers qui ont été créés ou supprimés depuis la dernière mise à jour de la base de données. La base de données est généralement mise à jour quotidiennement par une tâche cron, mais vous pouvez forcer une mise à jour.

Tout d'abord, assurons-nous que le paquet mlocate, qui fournit la commande locate, est installé.

sudo dnf install -y mlocate

Vous verrez une sortie similaire à celle-ci pendant l'installation :

Last metadata expiration check: 0:00:01 ago on Mon 15 May 2023 08:00:00 AM UTC.
Dependencies resolved.
================================================================================
 Package        Architecture  Version             Repository               Size
================================================================================
Installing:
 mlocate        x86_64        0.26-28.el9         rhel-9-for-x86_64-appstream-rpms 100 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 100 k
Installed size: 230 k
Downloading Packages:
mlocate-0.26-28.el9.x86_64.rpm     100 kB/s | 100 kB     00:01
--------------------------------------------------------------------------------
Total                                            100 kB/s | 100 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : mlocate-0.26-28.el9.x86_64                             1/1
  Running scriptlet: mlocate-0.26-28.el9.x86_64                             1/1
  Verifying        : mlocate-0.26-28.el9.x86_64                             1/1
Installed:
  mlocate-0.26-28.el9.x86_64

Complete!

Après l'installation, vous devez mettre à jour la base de données locate. Cette commande nécessite des privilèges sudo.

sudo updatedb

Cette commande s'exécutera silencieusement et peut prendre quelques instants en fonction de la taille de votre système de fichiers.

Maintenant, recherchons un fichier système courant, comme passwd.

locate passwd

Vous verrez une liste de chemins contenant "passwd" :

/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
...output omitted...

Pour effectuer une recherche insensible à la casse, utilisez l'option -i. Recherchons les fichiers contenant "messages" sans nous soucier de la casse.

locate -i messages

Vous verrez des résultats comme :

/usr/share/locale/zza/LC_MESSAGES
/usr/share/makedumpfile/eppic_scripts/ap_messages_3_10_to_4_8.c
/usr/share/vim/vim82/ftplugin/msmessages.vim
...output omitted...

Vous pouvez également limiter le nombre de résultats en utilisant l'option -n. Trouvons les 5 premières occurrences de "passwd".

locate -n 5 passwd

Cela affichera uniquement les 5 premières correspondances :

/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz

Utilisation de la commande find

La commande find recherche le système de fichiers en temps réel, ce qui la rend plus lente que locate mais garantit qu'elle trouve tous les fichiers qui correspondent à vos critères, y compris ceux créés très récemment. Elle offre également des options de recherche beaucoup plus puissantes.

La syntaxe de base pour find est find [path] [expression]. Si aucun chemin n'est spécifié, il recherche dans le répertoire actuel.

Recherchons le fichier sshd_config en partant du répertoire racine (/).

find / -name sshd_config

Vous devriez voir le chemin d'accès au fichier de configuration :

/etc/ssh/sshd_config

Lors de la recherche de noms partiels ou de l'utilisation de caractères génériques (wildcards), il est important de mettre entre guillemets le modèle de nom de fichier pour empêcher le shell de l'étendre prématurément. Trouvons tous les fichiers se terminant par .txt dans votre répertoire ~/project.

find ~/project -name '*.txt'

Si vous avez créé file1.txt, file2.txt et file3.txt à l'étape précédente, vous devriez les voir répertoriés :

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Pour effectuer une recherche insensible à la casse avec find, utilisez l'option -iname. Recherchons les fichiers contenant "README" (insensible à la casse) dans le répertoire /usr/share/doc.

find /usr/share/doc -iname '*readme*'

Vous verrez de nombreux résultats, par exemple :

/usr/share/doc/libselinux/README
/usr/share/doc/libsepol/README
/usr/share/doc/libsemanage/README
...output omitted...

La commande find est très polyvalente et peut être combinée avec d'autres critères, que vous explorerez dans les étapes suivantes.

Trouver des fichiers par propriétaire, permissions, taille et heure

Dans cette étape, vous apprendrez à utiliser la puissante commande find pour localiser des fichiers en fonction de divers critères au-delà de leur simple nom. Cela inclut la recherche par propriétaire, permissions, taille et heure de modification. Ces capacités de recherche avancées sont essentielles pour les tâches d'administration système telles que l'audit, le nettoyage et le dépannage.

Trouver des fichiers par propriétaire

Vous pouvez rechercher des fichiers appartenant à un utilisateur ou un groupe spécifique en utilisant respectivement les options -user et -group. Vous pouvez spécifier le nom de l'utilisateur/groupe ou son ID numérique.

Trouvons tous les fichiers de votre répertoire personnel (~) qui appartiennent à l'utilisateur labex.

find ~ -user labex

Cela listera de nombreux fichiers, y compris vos fichiers de configuration :

/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...

De même, pour trouver les fichiers appartenant au groupe labex :

find ~ -group labex

La sortie sera similaire, car labex est généralement le groupe principal de l'utilisateur labex.

Vous pouvez également rechercher par ID utilisateur (UID) ou ID de groupe (GID). L'utilisateur labex a généralement un UID et un GID de 1000.

find ~ -uid 1000
find ~ -gid 1000

Trouver des fichiers par permissions

L'option -perm de la commande find vous permet de rechercher des fichiers avec des permissions spécifiques. Les permissions peuvent être spécifiées en mode octal (par exemple, 755) ou symbolique (par exemple, u=rwx,g=rx,o=rx).

Créons un fichier de test dans votre répertoire ~/project avec des permissions spécifiques.

touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt

Maintenant, recherchons les fichiers dans ~/project qui ont exactement les permissions 644.

find ~/project -perm 644

Vous devriez voir permission_test.txt répertorié :

/home/labex/project/permission_test.txt

Vous pouvez également utiliser un / ou un - en tête des permissions octales :

  • / : Correspond si l'un des bits de permission spécifiés est défini.
  • - : Correspond si tous les bits de permission spécifiés sont définis.

Trouvons les fichiers dans ~/project où les autres ont au moins la permission de lecture (o=r ou 004).

find ~/project -perm -004

Cela listera permission_test.txt et d'autres fichiers qui accordent un accès en lecture aux autres.

/home/labex/project/permission_test.txt
...output omitted...

Trouver des fichiers par taille

L'option -size vous permet de rechercher des fichiers en fonction de leur taille. Vous pouvez spécifier la taille avec des unités (par exemple, k pour les kilo-octets, M pour les mégaoctets, G pour les gigaoctets). Vous pouvez également utiliser + pour "supérieur à" et - pour "inférieur à".

Trouvons les fichiers dans votre répertoire ~/project/test_data qui ont exactement une taille de 1 kilo-octet.

find ~/project/test_data -size 1k

Vous devriez voir file1.txt :

/home/labex/project/test_data/file1.txt

Maintenant, trouvez les fichiers de plus de 5 kilo-octets.

find ~/project/test_data -size +5k

Cela devrait lister file3.txt :

/home/labex/project/test_data/file3.txt

Et les fichiers de moins de 10 kilo-octets.

find ~/project/test_data -size -10k

Cela devrait lister file1.txt et file2.txt :

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt

Trouver des fichiers par heure de modification

Vous pouvez rechercher des fichiers en fonction de leur heure de modification en utilisant des options telles que -mmin (modifié il y a quelques minutes) ou -mtime (modifié il y a quelques jours).

Trouvons les fichiers de votre répertoire ~/project qui ont été modifiés au cours des 60 dernières minutes.

find ~/project -mmin -60

Cela inclura probablement permission_test.txt et les fichiers de test_data si vous les avez créés récemment :

/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Pour trouver les fichiers modifiés il y a plus d'un jour (24 heures), vous pouvez utiliser +1 avec -mtime.

find ~/project -mtime +1

Cette commande pourrait ne renvoyer aucun fichier si tous vos fichiers ~/project ont été créés ou modifiés récemment.

Ces options peuvent être combinées pour créer des requêtes de recherche très spécifiques, vous permettant de gérer efficacement les fichiers sur votre système.

Rechercher des fichiers en fonction du type de fichier

Dans cette dernière étape, vous apprendrez à utiliser la commande find pour rechercher des fichiers en fonction de leur type. Ceci est particulièrement utile lorsque vous devez localiser tous les répertoires, fichiers réguliers, liens symboliques ou fichiers de périphériques dans un chemin spécifique.

La commande find utilise l'option -type suivie d'un seul caractère pour spécifier le type de fichier. Voici quelques types de fichiers courants que vous pouvez rechercher :

  • f : Fichier régulier
  • d : Répertoire
  • l : Lien symbolique (symlink)
  • b : Périphérique de bloc
  • c : Périphérique de caractère
  • p : Tube nommé (FIFO)
  • s : Socket

Commençons par rechercher tous les répertoires dans votre répertoire ~/project.

find ~/project -type d

Vous devriez voir une sortie similaire à celle-ci, listant tous les répertoires et sous-répertoires :

/home/labex/project
/home/labex/project/test_data

Ensuite, recherchons tous les fichiers réguliers dans votre répertoire ~/project.

find ~/project -type f

Cela listera les fichiers comme file1.txt, file2.txt et file3.txt que vous avez créés précédemment :

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Maintenant, créons un lien symbolique pour démontrer la recherche de symlinks. Nous allons créer un symlink vers file1.txt dans votre répertoire ~/project.

ln -s ~/project/test_data/file1.txt ~/project/link_to_file1.txt

Vérifiez que le symlink a été créé en utilisant ls -l :

ls -l ~/project/link_to_file1.txt

Vous devriez voir une sortie indiquant qu'il s'agit d'un lien symbolique :

lrwxrwxrwx. 1 labex labex 32 May 15 08:00 /home/labex/project/link_to_file1.txt -> /home/labex/project/test_data/file1.txt

Maintenant, recherchez tous les liens symboliques dans votre répertoire ~/project.

find ~/project -type l

Vous devriez voir votre symlink nouvellement créé :

/home/labex/project/link_to_file1.txt

Enfin, recherchons les périphériques de bloc. Les périphériques de bloc se trouvent généralement dans le répertoire /dev.

find /dev -type b

Cela listera les périphériques de bloc comme vda, vda1, vda2, etc. :

/dev/vda1
/dev/vda2
/dev/vda3
/dev/vda
/dev/vdb

Vous pouvez combiner l'option -type avec d'autres options find que vous avez apprises dans les étapes précédentes. Par exemple, pour trouver tous les répertoires dans /etc qui appartiennent à l'utilisateur root :

find /etc -type d -user root

Cela produira une longue liste de répertoires :

/etc
/etc/selinux
/etc/selinux/targeted
/etc/selinux/targeted/active
/etc/selinux/targeted/active/modules
...output omitted...

Ceci conclut le lab sur l'accès aux systèmes de fichiers Linux et la localisation des fichiers. Vous avez appris à identifier les périphériques, à examiner l'utilisation du disque, à monter et démonter manuellement les systèmes de fichiers, et à utiliser locate et find avec divers critères.

Résumé

Dans ce lab, nous avons acquis une expérience pratique dans la gestion des systèmes de fichiers Linux sur un système Red Hat Enterprise Linux. Nous avons commencé par apprendre à identifier les systèmes de fichiers et les périphériques de bloc en utilisant des commandes telles que lsblk, en comprenant les concepts de base tels que les périphériques de bloc, les partitions, les systèmes de fichiers et les points de montage. Par la suite, nous avons exploré comment examiner l'utilisation du système de fichiers avec df et du, en distinguant leurs fonctionnalités pour le reporting de l'espace disque. Le lab a également couvert la compétence essentielle du montage et du démontage manuels des systèmes de fichiers, démontrant comment rendre le contenu du système de fichiers accessible, puis les détacher.

De plus, nous avons approfondi la localisation efficace des fichiers en utilisant divers critères. Nous avons appris à trouver des fichiers par nom avec locate et find, en comprenant les différences et les cas d'utilisation appropriés pour chacun. Le lab a étendu cela en enseignant comment rechercher des fichiers en fonction de la propriété, des permissions, de la taille et des attributs temporels, fournissant des outils puissants pour l'administration et le dépannage du système. Enfin, nous avons pratiqué la recherche de fichiers en fonction de leurs types de fichiers spécifiques, complétant ainsi une vue d'ensemble complète de la gestion des systèmes de fichiers et des techniques de localisation des fichiers.