Accéder aux systèmes de fichiers dans Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous acquerrez une expérience pratique de 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 bloc, à examiner l'utilisation du disque à l'aide de df et du, et à vous entraîner au montage et au démontage manuels des systèmes de fichiers.

De plus, ce laboratoire vous guidera dans la recherche efficace de 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, le propriétaire, les permissions, la taille, l'heure et le type de fichier.

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

Dans cette étape, vous apprendrez à identifier les systèmes de fichiers et les périphériques de bloc 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 bloc et leurs systèmes de fichiers associés.

Tout d'abord, comprenons quelques concepts clés :

  • 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 clés USB. Sous Linux, ils 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 comporter 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 bloc disponibles sur votre système à l'aide de la commande lsblk. Cette commande fournit une vue d'ensemble sous forme d'arborescence de tous les périphériques de bloc et de leurs partitions.

lsblk

Vous devriez voir une sortie similaire à celle-ci. Votre machine virtuelle peut utiliser des noms tels que vda et vdb, ou des noms NVMe tels que nvme0n1 et nvme1n1 :

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, nvme0n1 ou nvme1n1) ou de la partition (par exemple vda1, vda2 ou nvme0n1p2).
  • 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 de périphérique (par exemple, disk, part pour une 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 (Universally Unique Identifiers) et les types de systèmes de fichiers. Les UUID sont des identifiants stables qui restent identiques 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 identifiant unique pour chaque système de fichiers. C'est crucial pour monter les systèmes de fichiers de manière fiable, en particulier dans les fichiers de configuration comme /etc/fstab.

Avant de passer à l'étape suivante, enregistrez un court rapport dans votre répertoire de projet afin de pouvoir consulter à nouveau les informations sur les périphériques de bloc et les systèmes de fichiers plus tard.

{
  lsblk
  echo
  df -h
  echo
  lsblk -fp
} > ~/project/filesystem_overview.txt

Vous pouvez confirmer que le rapport a été créé avec :

cat ~/project/filesystem_overview.txt

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 (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 savoir quand utiliser chaque commande est crucial pour une gestion efficace de l'espace disque.

Commençons par revoir 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é. C'est particulièrement utile lorsque vous voulez 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 étendue, 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, similaire à df -h, vous pouvez utiliser l'option -h avec du.

du -h

Cela affichera les tailles dans des 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 vous intéressez à la taille totale d'un répertoire plutôt qu'à la taille de chaque fichier et sous-répertoire individuel. Pour cela, vous pouvez utiliser l'option -s (summary) 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 puis 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 .) montre la taille totale du répertoire actuel (., qui est ~/project/test_data).

Enfin, retournons à 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 le stockage efficacement.

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. Le montage d'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 monté à nouveau. Il s'agit d'une compétence essentielle pour gérer les supports amovibles, le stockage temporaire ou les nouvelles partitions de disque.

Pour cet exercice, nous utiliserons le disque supplémentaire non monté qui est disponible dans votre environnement de machine virtuelle LabEx. Selon la machine virtuelle, ce disque peut être nommé /dev/vdb, /dev/nvme1n1 ou quelque chose de similaire, nous allons donc le détecter au lieu de coder en dur un nom de périphérique.

Tout d'abord, identifions le disque racine et le disque supplémentaire que vous allez formater et monter.

ROOT_PARTITION=$(findmnt -n -o SOURCE /)
ROOT_DISK="/dev/$(lsblk -no PKNAME \"$ROOT_PARTITION\")"
DATA_DISK=$(lsblk -dnpo NAME,TYPE | awk '$2 == "disk" {print $1}' | grep -vx "$ROOT_DISK" | head -n 1)
echo "$DATA_DISK"

Cette commande devrait imprimer le chemin vers le disque supplémentaire, tel que /dev/vdb ou /dev/nvme1n1.

/dev/nvme1n1

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 dans votre répertoire ~/project pour servir de point de montage.

mkdir ~/project/mydata

Maintenant, nous devons formater le disque supplémentaire stocké dans $DATA_DISK avec un système de fichiers. Nous utiliserons le système de fichiers XFS, qui est la valeur 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 "$DATA_DISK"

Vous verrez une sortie indiquant la création du système de fichiers XFS. Le nom du périphérique dans la sortie correspondra à votre machine virtuelle :

meta-data=/dev/nvme1n1           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 $DATA_DISK possède 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 "$DATA_DISK" ~/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 votre disque détecté listé avec /home/labex/project/mydata comme point de montage.

df -h

Recherchez votre disque détecté dans la sortie :

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

Maintenant, vous pouvez créer des fichiers et des répertoires dans ~/project/mydata, et ils seront stockés sur le disque dans $DATA_DISK. 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 listé :

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, surtout 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", cela signifie qu'un processus accède toujours au point de montage. Cela arrive souvent si votre répertoire de travail actuel se trouve dans le système de fichiers monté. Pour résoudre ce problème, changez votre répertoire actuel pour un emplacement en dehors du point de montage, par exemple, votre répertoire personnel (~).

cd ~

Ensuite, essayez à nouveau de démonter :

sudo umount ~/project/mydata

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

df -h

Vous ne devriez plus voir votre disque détecté monté sur /home/labex/project/mydata.

Filesystem      Size  Used Avail Use% Mounted on
...
## Votre disque supplémentaire ne devrait plus être listé ici.

Ceci termine le processus de montage et de démontage manuel 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é-établie de noms de fichiers et de chemins. 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.

Sur cette image, la commande locate est déjà disponible. Confirmez que la commande existe avant de mettre à jour sa base de données.

command -v locate

Vous devriez voir une sortie similaire à celle-ci :

/usr/bin/locate

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 selon 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 se soucier de la capitalisation.

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 dans 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 [chemin] [expression]. Si aucun chemin n'est spécifié, elle recherche dans le répertoire actuel.

Recherchons le fichier sshd_config en commençant par le répertoire racine (/).

find / -name sshd_config

Vous devriez voir le chemin vers le fichier de configuration :

/etc/ssh/sshd_config

Lors de la recherche de noms partiels ou de l'utilisation de caractères génériques, il est important de mettre le modèle de nom de fichier entre guillemets 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 listé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.

Avant de continuer, enregistrez les résultats clés de locate et find afin de pouvoir les comparer plus tard.

{
  locate -n 5 passwd
  echo "---"
  find ~/project -name '*.txt'
} > ~/project/search-results.txt

Vous pouvez consulter les résultats enregistrés avec :

cat ~/project/search-results.txt

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 leur ID numérique.

Trouvons tous les fichiers dans 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, trouvons les fichiers dans ~/project qui ont exactement les permissions 644.

find ~/project -perm 644

Vous devriez voir permission_test.txt listé :

/home/labex/project/permission_test.txt

Vous pouvez également utiliser un / ou - initial avec les 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 kilo-octets, M pour mégaoctets, G pour gigaoctets). Vous pouvez également utiliser + pour "supérieur à" et - pour "inférieur à".

Trouvons les fichiers dans votre répertoire ~/project/test_data qui font exactement 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 comme -mmin (modifié il y a X minutes) ou -mtime (modifié il y a X jours).

Trouvons les fichiers dans 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 dans 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.

Enregistrez deux de vos résultats de recherche afin que la vérification suivante puisse confirmer que les bons fichiers ont été trouvés.

find ~/project -perm 644 > ~/project/find-perm-results.txt
find ~/project/test_data -size +5k > ~/project/find-size-results.txt

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. C'est particulièrement utile lorsque vous devez localiser tous les répertoires, fichiers réguliers, liens symboliques ou fichiers de périphérique 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 plus tôt :

/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 liens symboliques. Nous allons créer un lien symbolique vers file1.txt dans votre répertoire ~/project.

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

Vérifiez que le lien symbolique 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 lien symbolique 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/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3
/dev/nvme1n1

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...

Enregistrez les résultats de la recherche de liens symboliques avant de terminer le laboratoire.

find ~/project -type l > ~/project/find-type-results.txt

Ceci conclut le laboratoire 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 des systèmes de fichiers, et à utiliser locate et find avec divers critères.

Résumé

Dans ce laboratoire, nous avons acquis une expérience pratique de 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 à l'aide de commandes comme lsblk, en comprenant les concepts fondamentaux 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 rapporter l'espace disque. Le laboratoire 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 le 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 laboratoire a étendu cela en enseignant comment rechercher des fichiers en fonction des attributs de propriétaire, de permissions, de taille et d'heure, fournissant des outils puissants pour l'administration système et le dépannage. Enfin, nous nous sommes entraînés à rechercher des fichiers en fonction de leurs types de fichiers spécifiques, complétant ainsi un aperçu complet de la gestion des systèmes de fichiers et des techniques de localisation de fichiers.