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 <指定目錄> <指定條件> <指定動做>object
[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
首先安裝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_ -參數 filename_ 參數及含義以下:
[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系統中,文件後綴名並不嚴謹,經常沒有實際意義,就是由於慣例 ,你們爲了方便管理,會將一類的文件給定統一的後綴名。