Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser la commande Rechercher pour rechercher des fichiers sous Linux

Comment utiliser la commande Rechercher pour rechercher des fichiers sous Linux

青灯夜游
青灯夜游original
2019-03-15 16:25:355025parcourir

La commande Linux Find est l'un des outils les plus puissants de l'arsenal de l'administrateur système Linux. Elle nous permet de rechercher des fichiers et des répertoires dans la hiérarchie des répertoires en fonction d'une expression donnée par l'utilisateur, en appliquant l'utilisateur à chaque fichier correspondant. .opération spécifiée. L'article suivant vous montrera comment utiliser la commande Rechercher. J'espère qu'elle vous sera utile.

Comment utiliser la commande Rechercher pour rechercher des fichiers sous Linux

Commande de recherche Linux

Utilisez la commande de recherche en fonction des autorisations de fichier, du type, de la date, de la propriété, size Attendez la recherche de fichiers. Elle peut également être utilisée en conjonction avec d'autres outils tels que grep ou sed pour effectuer des opérations sur ces fichiers

Avant d'expliquer comment utiliser la commande find, comprenons d'abord la syntaxe de base :

find [options] [path...] [expression]

Description :

● Attribut Options : Contrôle le traitement des liens symboliques, les options de débogage et les méthodes d'optimisation.

● Attribut Path... : Définit le répertoire de départ dans lequel find recherchera les fichiers.

● Attribut d'expression : composé des "options", du "mode de recherche" et des "opérations séparées par des opérateurs".

Regardons l'exemple suivant :

find  -L /home/projects/ -name "*.js" -exec chmod 644 {} \;
Explication : Cette commande contient un paramètre -L (options), qui permet à la commande find de suivre les liens symboliques et de rechercher /home /projects/ (chemin...), recherche tous les fichiers se terminant par .js (expression) et définit les autorisations de tous les fichiers correspondants sur 644.

Comment retrouver des fichiers par type ?

Pour spécifier le type de fichier que vous recherchez, utilisez le paramètre -type.

Le type de fichier peut être spécifié à l'aide des descripteurs suivants :

Quantity f : Fichier normal

Quantity d : Répertoire

Quantity l : Lien symbolique

Quantity c : périphérique de rôle

Quantity b : périphérique de bloc

Quantity p : tube nommé (FIFO)

Quantity s : socket

Exemple :

Si vous souhaitez rechercher tous les répertoires du répertoire de travail actuel, vous pouvez utiliser :

find . -type d
Si vous souhaitez lister tous les périphériques de caractères sur le type de système :

find / -type c

Comment rechercher des fichiers par nom ?

La recherche de fichiers par nom est probablement l'utilisation la plus courante de la commande find. Pour rechercher des fichiers par nom, transmettez l'option -name ainsi que le nom du fichier que vous souhaitez rechercher.

Exemple :

Pour rechercher un fichier nommé document.pdf dans le répertoire /home/linuxize, vous pouvez utiliser la commande suivante :

Si vous souhaitez exécuter une recherche insensible à la casse, vous pouvez modifier l'option -name à l'aide de la commande -iname :
sudo find /home/linuxize -type f -name document.pdf

Remarque : la commande ci-dessus correspondra à Document.pdf, DOCUMENT.pdf ..etc.
sudo find /home/linuxize -type f -iname document.pdf

Comment retrouver des fichiers par extension ? La recherche de fichiers par extension est la même que la recherche de fichiers par nom.

Par exemple :

Si vous souhaitez rechercher tous les fichiers se terminant par .log.gz dans le répertoire /var/log/nginx, vous pouvez utiliser :

Si vous souhaitez rechercher tous les fichiers qui ne correspondent pas à l'expression régulière, *.log.gz peut utiliser le paramètre -not. Par exemple, pour rechercher tous les fichiers qui ne se terminent pas par *.log.gz, utilisez :
find /var/log/nginx -type f -name '*.log.gz'

find /var/log/nginx -type f -not -name '*.log.gz'

Comment rechercher des fichiers par taille ? Pour rechercher des fichiers en fonction de leur taille, vous devez passer le paramètre -size ainsi que la condition de taille. La taille des fichiers peut être spécifiée à l'aide des suffixes suivants :

● b : blocs de 512 octets (par défaut)

● c : octets

● w : mots à deux octets

Quantitys: Kilobytes

QuantityM: Megabytes

QuantityG: Gigabytes

Par exemple:

être dedans / Pour trouver tous les fichiers du répertoire tmp qui font exactement 1024 octets, vous pouvez exécuter la commande suivante :

La commande find nous permet également de rechercher des fichiers plus grands ou plus petits que la taille spécifiée. Par exemple :
find /tmp -type f -size 1024c

Nous pouvons rechercher tous les fichiers inférieurs à 1 Mo dans le répertoire de travail actuel, cela nécessite d'ajouter un signe moins avant la valeur de taille :

Si nous voulons rechercher des fichiers plus gros supérieur à 1 Mo, vous devez utiliser le signe plus + :
find . -type f -size -1M

Vous pouvez même rechercher des fichiers dans une plage de tailles. Par exemple, la commande suivante trouvera tous les fichiers entre 1 et 2 Mo :
find . -type f -size +1M

find . -type f -size +1M -size 21M

Comment retrouver les fichiers par date de modification ? La commande find peut également rechercher des fichiers en fonction de l'heure de la dernière modification, de l'accès ou de la modification.

Comme lors d'une recherche par taille, vous pouvez utiliser les signes plus et moins pour spécifier supérieur ou inférieur à.

Par exemple :

Vous avez modifié un fichier de configuration Dovecot il y a quelques jours, mais vous avez oublié le nom du fichier. Nous pouvons facilement filtrer tous les fichiers du répertoire /etc/dovecot/conf.d/ se terminant par .conf qui ont été modifiés au cours des 5 derniers jours :

Nous pouvons également lister tous les fichiers du /home répertoire modifié il y a 30 jours ou plus :
find /etc/dovecot/conf.d -name "*.conf" -mtime 5

find /home -mtime +30 -daystart

Comment rechercher des fichiers par autorisations ? Pour filtrer les fichiers en fonction des autorisations de fichiers, vous devez utiliser l'option -perm.

Par exemple :

要在/var/www/html目录中查找权限为775的所有文件:

find /var/www/html -perm 644

还可以使用减号-或斜杠/为数字模式添加前缀。

当斜杠/用作前缀时,至少一个类别(用户,组或其他类别)必须至少为文件匹配设置相应的位。

find . -perm /444

说明:搜索对用户,组或其他人设置了读权限的所有文件。

如果使用减号-作为前缀,则必须至少设置要匹配的文件。

find . -perm -664

说明:搜索对所有者和组具有读写权限的文件,并且其他用户可以读取。

如何按所有者查找文件?

要查找特定用户或组拥有的文件,可以使用-user和-group选项。

例如,要搜索用户拥有的所有文件和目录linuxize,可以运行:

find / -user linuxize

这是更高级的示例,假设是希望查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为nginx:

find / -user www-data -type f  -exec chown nginx {} \;

相关视频教程推荐:《linux教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn