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.