find命令用法

stat命令

atime mtime ctime

stat命令用來查看文件或目錄的詳細信息,用法爲stat 文件名node

[root@localhost ~]# stat /tmp/1
  文件:"/tmp/1"
  大小:6         	塊:0          IO 塊:4096   目錄
設備:803h/2051d	Inode:620180      硬連接:2
權限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2018-06-09 08:18:49.367936994 +0800
最近更改:2018-06-09 08:18:49.367936994 +0800
最近改動:2018-06-09 08:18:49.367936994 +0800
建立時間:-

使用這個命令能夠看到裏面有三個時間點,Access ,Modify,Change 改爲英文看比較直觀bash

[root@localhost ~]# LANG=en
[root@localhost ~]# !stat
stat /tmp/1
  File: '/tmp/1'
  Size: 6         	Blocks: 0          IO Block: 4096   directory
Device: 803h/2051d	Inode: 620180      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-06-09 08:18:49.367936994 +0800
Modify: 2018-06-09 08:18:49.367936994 +0800
Change: 2018-06-09 08:18:49.367936994 +0800
 Birth: -

這三個時間點能夠分別表示爲,atime , mtime ,ctime 當對該文件訪問後,atime 會改變;改變了文件內容後mtime ,ctime 會一塊兒改變,改變了文件的iNode屬性後(例如權限,連接,屬主屬組等信息)會改變它的ctime服務器

[root@localhost ~]# stat /tmp/2.txt 
  文件:"/tmp/2.txt"
  大小:0         	塊:0          IO 塊:4096   普通空文件
設備:803h/2051d	Inode:100663426   硬連接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2018-06-09 08:19:01.604936912 +0800
最近更改:2018-06-09 08:19:01.604936912 +0800
最近改動:2018-06-09 08:19:01.604936912 +0800
建立時間:-
[root@localhost ~]# echo "1212121212121212" >> /tmp/2.txt 
[root@localhost ~]# !stat
stat /tmp/2.txt 
  文件:"/tmp/2.txt"
  大小:17        	塊:8          IO 塊:4096   普通文件
設備:803h/2051d	Inode:100663426   硬連接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2018-06-09 08:19:01.604936912 +0800
最近更改:2018-06-09 08:38:19.209929176 +0800
最近改動:2018-06-09 08:38:19.209929176 +0800
建立時間:-

在這裏咱們能夠看到,當改變了文件內容後,Mtime和ctime備改變了 ,atime沒有改變code

最近訪問:2018-06-09 08:19:01.604936912 +0800
最近更改:2018-06-09 08:38:19.209929176 +0800
最近改動:2018-06-09 08:38:19.209929176 +0800
建立時間:-
[root@localhost ~]# cat /tmp/2.txt 
1212121212121212
[root@localhost ~]# !stat
stat /tmp/2.txt 
  文件:"/tmp/2.txt"
  大小:17        	塊:8          IO 塊:4096   普通文件
設備:803h/2051d	Inode:100663426   硬連接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2018-06-09 08:40:11.105928429 +0800
最近更改:2018-06-09 08:38:19.209929176 +0800
最近改動:2018-06-09 08:38:19.209929176 +0800
建立時間:-

上面代碼能夠看到,訪問文件以後被改變的只有atime 。資源

最近訪問:2018-06-09 08:40:11.105928429 +0800
最近更改:2018-06-09 08:38:19.209929176 +0800
最近改動:2018-06-09 08:38:19.209929176 +0800
建立時間:-
[root@localhost ~]# chmod 666 /tmp/2.txt 
[root@localhost ~]# !stat
stat /tmp/2.txt 
  文件:"/tmp/2.txt"
  大小:17        	塊:8          IO 塊:4096   普通文件
設備:803h/2051d	Inode:100663426   硬連接:1
權限:(0666/-rw-rw-rw-)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2018-06-09 08:40:11.105928429 +0800
最近更改:2018-06-09 08:38:19.209929176 +0800
最近改動:2018-06-09 08:42:06.055927660 +0800

而改變文件的權限後,只有ctime改變,其餘不變。test

find 命令

上面講這些是爲了這個find命令的一個用法作的鋪墊。 find命令是一個搜索命令,它的用途特別多,命令格式爲: find <指定目錄> <指定條件> <指定動做>object

  • 指定目錄 :能夠指定目錄,若是不指定則默認爲當前目錄下搜索
  • 指定條件:這個選項比較豐富了
  1. 指定文件類型 -type 文件類型
  2. 指定更改時間 -mtime +1/-1(更改時間爲一天之前的/更改時間爲一天之內的)
  3. -mmin 100 (更改時間100分鐘之內的);
  4. -name "*.tar" (文件名中有.tar字符的)
  • 指定動做:將查找出的文件作什麼處理,例如:find -type f -mtime -1 -exec lsattr {} ; (找出更改時間在1天之內的文件並顯示它的隱藏權限)
[root@localhost ~]# find /tmp/ -type f -mtime -1 -exec ls -l {} \;
-rw-rw-rw-. 1 root root 55 6月   9 09:09 /tmp/2.txt
[root@localhost ~]# find /tmp/ -type f -mtime -1 -exec lsattr {} \;
---------------- /tmp/2.txt

還有一個查找硬連接文件,當咱們知道一個文件作了硬連接了,想找到硬連接文件可使用:find 目錄 -inum inode號 來查找date

[root@localhost ~]# ln /tmp/2.txt /media/567.txt
[root@localhost ~]# ls -li /tmp/2.txt 
100663426 -rw-rw-rw-. 2 root root 55 6月   9 09:09 /tmp/2.txt
[root@localhost ~]# find / -inum 100663426 
/tmp/2.txt
/media/567.txt

find命令用法多樣化,並且很強大。file

lacate whereis命令

首先安裝mlocate包才能運行locate命令,搜索

[root@test-01 ~]# yum install -y mlocate

而且首次使用會報錯,由於系統沒有生成mlocate.db這個庫,可使用updatedb命令 當即生成,生成庫文件會佔用較多資源,若是服務器在跑業務,最好不要執行這條命令,locate命令也是模糊查找,在搜索到的列表中,無論是目錄仍是文件,只要包含咱們所查找的字符,就會被列出來,因此locate不適合精確查找。

[root@localhost ~]# locate /lic
/home/lic
/home/lic/.bash_history
/home/lic/.bash_logout
/home/lic/.bash_profile
/home/lic/.bashrc
/usr/share/doc/ivtv-firmware-20080701/license-end-user.txt
/usr/share/doc/ivtv-firmware-20080701/license-oemihvisv.txt
/var/spool/mail/lic

whereis命令

whereis命令也不經常使用,格式爲whereis_ -參數 filename_ 參數及含義以下:

  • -b: 只查找二進制文件
  • -m:只查找幫助文件(在man目錄下的文件)
  • -s:只查找源代碼文件
[root@test-01 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

whereis命令相似於模糊查找,如上所示,運行whereis ls 只要帶有ls字符,就會被列出來

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@localhost ~]# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz

文件後綴名

在Linux系統中,文件後綴名並不嚴謹,經常沒有實際意義,就是由於慣例 ,你們爲了方便管理,會將一類的文件給定統一的後綴名。

相關文章
相關標籤/搜索