歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 文本查找利器find的使用

文本查找利器find的使用

日期:2017/2/28 14:35:39   编辑:Linux教程

一、find概述;
作為Linux系統運維人員來說find命令也是較長用的一個命令,個人覺得也是最有用的一個,同時也 是最混亂的一個。因為它的語法與其他命令的標准語法不同,同時也支持grep裡面的通配符查找。也可以允許按文件名,文件類型,用戶甚至是時間戳查找。不但可以找到具有這些屬性任意組合的文件,還可以對它找到的文件執行操作。

功能:在目錄結構中搜索文件,並執行指定的操作。此命令提供了相當多的查找條件,功能很強大。
語法:find 起始目錄 尋找條件 操作
說明:find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之采取相關的操作。

二、find命令的格式;
find [options] [查找路徑] [查找條件][處理動作]
默認的處理動作是顯示

查找路徑;默認查找當前目錄

查找條件;默認查找指定路徑下的所有文件

處理動作;默認為顯示

find常用選項

選 項 功能作用 -name “文件名稱”;支持使用文件名通配機制 *、?、[]、[^]

-iname

-iname “文件名稱”;查找是不區分字符大小寫 -uid 根據給定的uid查找所有文件 -gid 根據給定的gid查找所有文件 -user 根據屬主查找文件 -group 根據組名查找文件 -nouser 查找沒有屬主的文件 -nogroup 查找沒有屬組的文件 -a,-o -a表示為與,同時滿足。-o表示或,滿足查找條件即可 -type

查找某一類型文檔;

b;塊設備文檔、d;目錄、c;字符設備文檔、

l;符號鏈接文檔、f;普通文檔

-prune 不在當前指定的路徑查找。假如同時指定了-depth選項,則prune被忽略 -empty 查找大小為0的目錄或文件 -size 根據文件大小查找 常用單位有;K、M、G -depth 查找是,首先查找當前目錄文檔,然後在找子目錄查找 -exec 對匹配的文檔執行所給的命令 {}占位符 -ok 交互式的-exec; 用於指定其他命令的 {}占位符 -ls 長格式輸出各文件信息 -print 打印在標准輸出上 -mtime -n,+n 按照文檔更改時間查找。 -n指距離現在時間n天以內;+n 指n天以外 -atime +,指定天數之外被訪問過 -,是指定天數之內被訪問過 -fstype f1,f2 查更改時間比f1新但比f2舊的文檔 -perm 按權限來查找

find示例
1、 -name
按文件名查找以.conf結尾的文件,兩個結合了通配符查找
[root@station103 ~]# find /etc -name "*.conf" #按文件名查找
/etc/sasl2/smtpd.conf
/etc/openldap/ldap.conf
/etc/lftp.conf
/etc/mtools.conf
/etc/NetworkManager/NetworkManager.conf
/etc/ld.so.conf
/etc/plymouth/plymouthd.conf

1234567 [root@station103 ~]# find /etc -name "???.conf"
/etc/yum.conf
/etc/gai.conf
/etc/sos.conf
/etc/samba/smb.conf
/etc/init/tty.conf
/etc/init/rcS.conf

2、-iname
文件名不區分大小寫查找

[root@station103 tmp]# find -iname "*.txt" 不區分大小寫查找
./KKG.txt
./aa.txt
./nba.txt
./QW.txt
./hao.txt
./abc.txt
./dW.txt
./hddW.txt

3、-uid
根據uid查找

[root@station103 tmp]# find -uid 517
./kd.txt
./ii.txt
./oo.doc

4、-gid
根據gid查找

-rw-rw-r-- 1 517 518 0 Feb 19 08:07 oo.doc
-rw-r--r-- 1 root root 0 Feb 19 08:00 QW.txt
drwx------ 2 root root 4096 Feb 16 07:32 yang
[root@station103 tmp]# find -gid 518
./kd.txt
./ii.txt
./oo.doc
[root@station103 tmp]#

5、-user
根據用戶查找文件或目錄

[root@station103 tmp]# find -user yang
./hao.doc
./kkk.txt
./aabb.txt
[root@station103 tmp]#

6、-group
根據組名查找文件或目錄
[root@station103 tmp]# ll
total 200
drwxr-xr-x 2 aa hao 4096 Feb 20 04:56 aa
-rw-r--r-- 1 aa hao 0 Feb 20 04:57 abcd.txt
-rw-rw-r-- 1 yang yang 0 Feb 19 08:05 hao.doc
-rw-rw-r-- 1 aa 518 0 Feb 19 08:07 ii.txt
-rw-rw-r-- 1 aa 518 0 Feb 19 08:07 kd.txt
-rw-rw-r-- 1 aa 518 0 Feb 19 08:07 oo.doc
-rw-r--r-- 1 aa hao 0 Feb 20 04:57 yang.doc
[root@station103 tmp]# find -group hao
./aa
./abcd.txt
./yang.doc
[root@station103 tmp]#

7、-nouser
列出/tmp下沒有用戶的文件
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 ii.txt
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 kd.txt
drwxr-xr-x 11 root root 4096 Feb 15 21:40 logs
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 oo.doc
drwx------ 2 root root 4096 Feb 16 07:32 yang
-rw-r--r-- 1 517 hao 0 Feb 20 04:57 yang.doc
[root@station103 ~]# find /tmp -nouser
/tmp/aa
/tmp/abcd.txt
/tmp/kd.txt
/tmp/yang.doc
/tmp/ii.txt
/tmp/oo.doc
[root@station103 ~]#

8、-nogroup
列出/tmp下沒有用戶組的文件
drwxr-xr-x 2 root root 4096 Feb 16 10:09 hello
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 ii.txt
-rw-r--r-- 1 root root 884 Feb 20 05:32 inittab
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 kd.txt
-rw-rw-r-- 1 517 518 0 Feb 19 08:07 oo.doc
[root@station103 ~]# find /tmp -nogroup
/tmp/kd.txt
/tmp/ii.txt
/tmp/oo.doc

Copyright © Linux教程網 All Rights Reserved