Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser la commande Linux Find

Comment utiliser la commande Linux Find

青灯夜游
青灯夜游original
2021-06-25 14:01:4217704parcourir

Sous Linux, la commande find est utilisée pour rechercher des fichiers dans un répertoire spécifié. La syntaxe de base est "find path -option..". Toute chaîne précédant le paramètre sera considérée comme le nom du répertoire à trouver ; si vous utilisez cette commande sans définir de paramètre, la commande find recherchera les sous-répertoires et les fichiers dans le répertoire actuel.

Comment utiliser la commande Linux Find

L'environnement d'exploitation de ce tutoriel : système Red Hat Enterprise Linux 6.1, ordinateur Dell G3.

La commande Linux find est utilisée pour rechercher des fichiers dans le répertoire spécifié.

Format de la commande find :

find   path  -option  【 -print 】  【 -exec   -ok   |xargs  |grep  】 【  command  {} \;  】

Paramètres de la commande find :

1)path : Le chemin du répertoire à rechercher.

  • ~ représente le répertoire $HOME
  • représente le répertoire courant
  • / représente le répertoire racine
<.>2 )

print : Indique la sortie des résultats vers la sortie standard.

3)

exec : Exécute la commande shell donnée par ce paramètre sur le fichier correspondant.

La forme est commande {};,

Notez qu'il y a un espace entre {} et

4)

ok : a le même effet as exec,

La différence est qu'avant d'exécuter la commande, une invite sera donnée pour permettre à l'utilisateur de confirmer s'il doit l'exécuter

5)

|xargs Il a la même fonction que exec et sert de successeur

La différence est que

|xargs est principalement utilisé pour entreprendre des opérations de suppression, tandis que -exec peut être utilisé pour la copie , déplacer, renommer, etc.

6)

options  : Indique la méthode de recherche

options Les options couramment utilisées incluent les options suivantes :

-name   filename               #查找名为filename的文件
 -perm                                #按执行权限来查找
 -user    username             #按文件属主来查找
 -group groupname            #按组来查找
 -mtime   -n +n                   #按文件
更改时间
来查找文件,-n指n天以内,+n指n天以前
 -atime    -n +n                   #按文件
访问时间
来查找文件,-n指n天以内,+n指n天以前
 -ctime    -n +n                  #按文件
创建时间
来查找文件,-n指n天以内,+n指n天以前
 -nogroup                          #查无有效属组的文件,即文件的属组在/etc/groups中不存在
 -nouser                            #查无有效属主的文件,即文件的属主在/etc/passwd中不存
 -type    b/d/c/p/l/f             #查是块设备、目录、字符设备、管道、符号链接、普通文件
 -size      n[c]                    #查长度为n块[或n字节]的文件
 -mount                            #查文件时不跨越文件系统mount点
 -follow                            #如果遇到符号链接文件,就跟踪链接所指的文件
 -prune                            #忽略某个目录

Tout La chaîne avant le paramètre sera considérée comme le nom du répertoire à rechercher. Si vous utilisez cette commande sans définir de paramètres, la commande find recherchera les sous-répertoires et les fichiers dans le répertoire actuel. Et tous les sous-répertoires et fichiers trouvés seront affichés.

Ce qui suit utilise quelques exemples simples pour présenter l'utilisation courante de find :
1. Recherchez par nom
Dans le répertoire et les sous-répertoires actuels, recherchez les majuscules lettres fichiers txt commençant par des lettres

$ find . -name &#39;[A-Z]*.txt&#39; -print   

Dans /etc et ses sous-répertoires, recherchez les fichiers commençant par host


$ find /etc -name &#39;host*&#39; -print  

Dans le répertoire $HOME et ses sous-répertoires, recherchez tous les fichiers


$ find ~ -name &#39;*&#39; -print

Dans le répertoire et les sous-répertoires courants, recherchez les fichiers txt qui ne commencent pas par out


$ find . -name "out*" -prune -o -name "*.txt" -print

2. Recherche par répertoire

Rechercher des fichiers txt dans des sous-répertoires autres que aa dans le répertoire courant


$ find . -path "./aa" -prune -o -name "*.txt" -print  

Dans le répertoire actuel répertoire et recherchez les fichiers txt dans des sous-répertoires autres que aa et bb


 $ find . \( -path &#39;./dir0&#39; -o -path &#39;./dir1&#39; \) -a -prune -o -name &#39;*.txt&#39; -print

Remarque : obligatoire dans 1 et 2 Ajouter espaces, sinon il y aura une erreur comme indiqué sur l'image

Vous pouvez ajouter -a ou pas à 3 endroits Dans le répertoire courant, plus dans le sous-répertoire, Rechercher les fichiers txt

$ find . ! -name "." -type d -prune -o -type f -name "*.txt" -print

ou

find . -name *.txt -type f -print

Lien convivial : explication détaillée de l'utilisation de la commande find -path -prune sous Linux

3. Recherche par autorisations

Dans le répertoire et les sous-répertoires actuels, recherchez les fichiers dont le propriétaire dispose d'autorisations de lecture, d'écriture et d'exécution et d'autres fichiers dotés d'autorisations de lecture et d'exécution


$find . -perm 755 -print

Rechercher les fichiers pour lesquels l'utilisateur dispose d'autorisations d'écriture ou les fichiers ou répertoires pour lesquels les utilisateurs du groupe ont des autorisations d'écriture


find ./ -perm /220       
find ./ -perm /u+w,g+w       
find ./ -perm /u=w,g=w

Rechercher par type (b/d/c/p/l/. f)

Dans le répertoire courant et les sous-répertoires Répertoire, recherchez les fichiers de liens symboliques


 $ find . -type l -print

5. Par propriétaire et groupe

Rechercher fichiers dont le propriétaire est www

$ find / -user www -type f -print

Rechercher les attributs Principaux fichiers supprimés


$ find / -nouser -type f -print

Rechercher les fichiers appartenant au groupe mysql


$ find / -group mysql -type f -print

Rechercher les fichiers supprimés du groupe d'utilisateurs


$ find / -nogroup -type f -print

6. Rechercher par heure
Rechercher les fichiers qui ont été modifiés dans les 2 jours

$ find . -mtime -2 -type f -print   

Rechercher les fichiers qui ont a été modifié il y a 2 jours


 $ find . -mtime +2 -type f -print

Rechercher les fichiers consultés dans la journée


$ find . -atime -1 -type f -print

Rechercher les fichiers consultés il y a un jour

 $ find . -atime +1 -type f -print  

Rechercher les fichiers dont le statut a été modifié au cours de la journée

$ find . -ctime -1 -type f -print   

Rechercher les fichiers dont le statut a été modifié il y a un jour

$ find . -ctime +1 -type f -print  

      查找10分钟以前状态被改变的文件 

$ find . -cmin +10 -type f -print

7、按文件新旧   

      查找比 aa.txt 新的文件 

$ find . -newer "aa.txt" -type f -print   

      查找比 aa.txt 旧的文件 

$ find . ! -newer "aa.txt" -type f -print   

      查找比aa.txt新,比bb.txt旧的文件 

$ find . -newer &#39;aa.txt&#39; ! -newer &#39;bb.txt&#39; -type f -print

8、按大小查找   

      查找超过1M的文件 

$ find / -size +1M -type f -print   

      查找等于6字节的文件 

$ find . -size 6c -print   

      查找小于32k的文件 

$ find . -size -32k -print

9、执行命令   

      1)查找 del.txt 并删除,删除前提示确认 

$ find . -name &#39;del.txt&#39; -ok rm {} \;  

     2) 查找 aa.txt 并备份为aa.txt.bak 

$ find . -name &#39;aa.txt&#39; -exec cp {} {}.bak \;

     3)查当前目录下的所有普通文件

    # find . -type f -exec ls -l {} \; 
    -rw-r–r–    1 root      root         34928 2003-02-25   ./conf/httpd.conf 
    -rw-r–r–    1 root      root         12959 2003-02-25   ./conf/magic 
    -rw-r–r–    1 root      root          180 2003-02-25   ./conf.d/README

   查当前目录下的所有普通文件,并在 - exec 选项中使用 ls -l 命令将它们列出

   4)在 /logs 目录中查找更改时间在5日以前的文件并删除它们

$ find logs -type f -mtime +5 -exec   -ok   rm {} \;

   5)查询当天修改过的文件

# find   ./   -mtime   -1   -type f   -exec   ls -l   {} \;

   6)查询文件并询问是否要显示

# find   ./   -mtime   -1   -type f   -ok   ls -l   {} \;  
    < ls … ./classDB.inc.php > ? y
    -rw-r–r–    1 cnscn    cnscn       13709   1月 12 12:22 ./classDB.inc.php
    # find   ./   -mtime   -1   -type f   -ok   ls -l   {} \;  
    < ls … ./classDB.inc.php > ? n

关于 有没有 -print 的区别

加  -print

查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)

find /home -type d -print -exec ls {} \;

不加 -print

相关推荐:《Linux视频教程

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
Article précédent:Comment fonctionne keepalivedArticle suivant:Comment fonctionne keepalived