說道查找命令,第一個想到的就是find,用法多樣,加上-exec,你能夠玩的很開心。小缺點是須要遍歷目錄下全部,查找會比較慢。例如遍歷/下查找,尤爲是系統中文件很是多時,你能夠先去聽首歌,再來看結果(固然了,這有點誇張!)。vim
[root@salt-master test03]# find /etc/ -name network /etc/sysconfig/network /etc/vmware-tools/scripts/vmware/network /etc/rc.d/init.d/network
通常狀況下,查找範圍越大,目錄層級越深,查找速度就越慢。bash
[root@salt-master test03]# time find / -name ifcfg-eth0 real 0m0.850s user 0m0.239s sys 0m0.598s
注意:real遠大於user加上sys,由於find須要遍歷各個目錄,須要大量的I/O操做,而磁盤I/O一般是最慢的環節,所以大部分時間find進程都在等待磁盤I/O完成。less
-name: 按名字查找 -iname:忽略大小寫
[root@salt-master test03]# find /etc -name networkmanager [root@salt-master test03]# find /etc -iname networkmanager /etc/NetworkManager
f: 普通文件 d: 目錄 l: 軟鏈接 ......
[root@salt-master test03]# ll total 4 drwxr-xr-x 2 root root 4096 Dec 13 15:47 01 -rw-r--r-- 1 root root 0 Dec 13 15:47 02 [root@salt-master test03]# find . -type f ./02 [root@salt-master test03]# find . -type d . ./01
[root@salt-master test03]# stat 文件名 能夠查看文件的三個時間 atime:訪問時間,cat more less ... ... mtime:文件的內容發生變化的時間,vim ... ... (也是 ll 所顯示的時間) ctime:文件的屬性發生變化的時間,好比:權限改變、大小改變、全部者、所屬組等改變 -atime n 以天爲單位 -amin n 以分鐘爲單位 -mtime n 以天爲單位 n爲數字,前面能夠帶+或者-號 +n:n+1天以前 n :n到n+1天之間 -n:n天之內
1.查找/find下修改時間在24小時(1天)以內的文件和目錄ide
[root@salt-master test03]# find . -mtime -1 ./01 ./02
2.查找/find下修改時間在2天前的普通文件 ui
[root@salt-master test03]# ll total 8 drwxr-xr-x 2 root root 4096 Dec 13 15:47 01 -rw-r--r-- 1 root root 0 Dec 13 15:47 02 -rw-r--r-- 1 root root 193 Apr 12 2019 11.txt [root@salt-master test03]# find . -type f -mtime +1 ./11.txt
-user 用戶名 -group 組名 -uid uid -gid gid -nouser:孤兒文件,沒有全部者的文件 -nogroup:沒有所屬組的文件
1.查找系統中全部者是finduser的文件this
[root@salt-master test03]# useradd finduser [root@salt-master test03]# find / -user finduser -type f /var/spool/mail/finduser /home/finduser/.bash_logout /home/finduser/.bashrc /home/finduser/.bash_profile
2.查找系統中的孤兒文件code
[root@salt-master test03]# userdel finduser [root@salt-master test03]# find /home/ -type f -nouser /home/finduser/.bash_logout /home/finduser/.bashrc /home/finduser/.bash_profile
+ 大於 - 小於 直接數字 等於 ‘b’ for 512-byte blocks (this is the default if no suffix is used) ‘c’ for bytes ‘w’ for two-byte words ‘k’ for Kilobytes (units of 1024 bytes) ‘M’ for Megabytes (units of 1048576 bytes) ‘G’ for Gigabytes (units of 1073741824 bytes)
[root@salt-master test03]# ll -h total 5.1M drwxr-xr-x 2 root root 4.0K Dec 13 15:47 01 -rw-r--r-- 1 root root 0 Dec 13 15:47 02 -rw-r--r-- 1 root root 5.0M Dec 13 16:40 04 -rw-r--r-- 1 root root 193 Apr 12 2019 11.txt [root@salt-master test03]# find . -type f -size 3M [root@salt-master test03]# find . -type f -size -3M ./02 ./11.txt [root@salt-master test03]# find . -type f -size 3M [root@salt-master test03]# find . -type f -size +3M ./04
-exec 動做 -- 找到結果以後直接執行動做 -ok 動做 -- 執行動做以前先提示,即須要交互
[root@salt-master test03]# find . -type f -size +3M ./04 [root@salt-master test03]# find . -type f -size +3M -exec ls -l {} \; -rw-r--r-- 1 root root 5242880 Dec 13 16:40 ./04 {} —— 用來代替找到的結果 \; —— 表示結束標誌
[root@salt-master test03]# find . -type f -size +3M -ok ls -l {} \; < ls ... ./04 > ? y -rw-r--r-- 1 root root 5242880 Dec 13 16:40 ./04 [root@salt-master test03]# find . -type f -size +3M -ok ls -l {} \; < ls ... ./04 > ? n
例如,有時候只想修改當前目錄下全部文件權限爲644,但不想修改目錄權限,能夠以下操做
find ./* -type f -exec chmod 644 {} \;進程
瞭解了-exec後,find和其餘命令的組合起來使用,會使它的功能變得會很是強大和方便。ip