命令findphp
命令語法:
find [路徑][參數]html
命令描述
命令find是用來搜索文件。node
命令選項
-type 表示 文件類型
-name 表示 文件名
-o 表示 或 的意思
-mmin 表示分鐘
-inum 表示查找一個文件的硬連接。
-exec <執行指令>:假設find指令的回傳值爲True,就執行該指令。
-size 文件大小
-atime +n/-n 表示訪問或執行時間大於或小於n天的文件。
-ctime +n/-n 表示寫入,更改inode屬性(如更改全部者,權限或者連接)的時間大於或小於n天的文件。
-mtime +n/-n 表示寫入時間大於或小於n天的文件,該參數用得最多。linux
- 文件的 access time(即atime) 是在讀取文件或者執行文件時更改的。
指定名字 -neme shell
指定類型-type d f (-) l s c b 瀏覽器
#find /etc/ -name "sshd_config"bash
根據name的前半部分模糊搜索文件會列出與之相關的文件。 其語法: find 路徑 -name "文件名的前半部分 less
#find /etc/ -name "sshd*"ssh
指定文件#find /etc/ -type d -name "sshd*" (d目錄directory)spa
#find /etc/ -type f -name "sshd*" (f文件file)
根據文件的類型模糊搜索文件。 其語法: find 路徑 -type 文件類型 "文件名的前半部分 * "
說明: 這裏的 f 表示文件的類型。文件的類型有 - 普通文件,l 連接文件,b 塊設備文件等等。。。固然也可使用find命令只指定類型不指定name搜索文件。 d f (-) l s c b
stat命令 是用來查看一個文件的具體信息,(文件名字、文件大小、所用的塊、設備、inode、硬連接、權限)和三個atime(access) mtime(modify) ctime(change)
[root@cham2 ~]# ls 111 123 1_heard.txt 22.txt 2.txt 88_sorft.txt anaconda-ks.cfg.1 11.txt 12.txt 1_sorft 234 88_heard.txt 88.txt [root@cham2 ~]# stat 2.txt 文件:"2.txt" 大小:1008 塊:8 IO 塊:4096 普通文件 設備:803h/2051d Inode:16777669 硬連接:1 權限:(0700/-rwx------) Uid:( 0/ root) Gid:( 0/ root) 最近訪問:2017-10-25 16:41:31.486026949 +0800 最近更改:2017-10-25 16:41:31.486026949 +0800 最近改動:2017-10-25 16:41:31.486026949 +0800 建立時間:-
atime=access訪問時間 mtime=modify更改內容時間 ctime=change改動權限大小時間指的是除了內容的變化外 權限的變化 連接的變化 都算 等
#chmod 700 2.txt 改變了2.txt權限ctime(change)時間會變
echo命令 追加#echo "121212" >> 2.txt 從後面追加 mtime(modify)和ctime(change)都跟着變了
*知識點*改了文件的內容。那麼ctime 必定會變。ctime文件記錄着文件大小,時間,權限,全部者,所屬組**
cat一次2.txt說明訪問了。access=atime的時間就會變
用find查看一天之內的-1就是一天之內的,+1就是一天日後大於一天內的
#find /etc/ -type f -mtime -1 一天之內 ^C (file)
find /etc/ -type f -mtime +1 大於一天文件較多,不截圖,相似-1
不能寫=1
看一下一天之內/etc/發生過更改的文件,注意是文件file
還能夠搜一天內的訪問的文件
#find /etc/ -type f -atime -1 內容較多,不截圖
還有#find /etc/ -type f -ctime -1
特殊用法
而且和或者
而且
或者o就是or內容太多,不截圖
find搜索一個硬連接
語法# find / -inum 33575641
[root@cham2 ~]# ls -l total 16 -rw-rw-r-- 1 root root 135 Oct 25 17:44 11.txt drwxrwxr-- 3 root root 126 Oct 26 20:41 111 -rw-r--r-- 1 root root 65 Oct 25 17:20 12.txt drwxr-xr-x 2 root root 42 Oct 26 20:41 123 -rw-r--r-- 1 root root 0 Oct 25 17:31 1_heard.txt lrwxrwxrwx 1 root root 5 Oct 26 21:31 1_sorft -> 1.txt -rwx------ 1 root root 1062 Oct 27 14:36 2.txt -rw-r--r-- 1 root root 0 Oct 25 17:07 22.txt drwxrwxr-x 4 root user1 64 Oct 26 14:09 234 -rw-r--r-- 2 root root 0 Oct 26 21:33 88.txt -rw-r--r-- 2 root root 0 Oct 26 21:33 88_heard.txt lrwxrwxrwx 1 root root 6 Oct 26 21:34 88_sorft.txt -> 88.txt -rw-------. 1 root root 1422 Oct 19 07:00 anaconda-ks.cfg.1 [root@cham2 ~]# ln 1_heard.txt /tmp/1.txt.bak 建立一個硬連接到tmp下面去命名爲1.txt.bak [root@cham2 ~]# ls -l 1_heard.txt 看一下 -rw-r--r-- 2 root root 0 Oct 25 17:31 1_heard.txt [root@cham2 ~]# ls -i 1_heard.txt ls -i看一下inode號 33575641 1_heard.txt [root@cham2 ~]# find / -inum 33575641 用find去查找 這個inode號 /root/1_heard.txt /tmp/1.txt.bak
查找 /root/ 500分鐘之內的寫入過的文件。
如圖所示:
其中 -mmin表明分鐘
mmin
# find /root/ -type f -mmin -500
[root@cham2 ~]# find /root/ -type f -mmin -500 /root/.bash_history.bak /root/2.txt.bak [root@cham2 ~]# ls -l /root/2.txt.bak -rwx------ 1 root root 1062 10月 27 14:36 /root/2.txt.bak [root@cham2 ~]#
find的同時直接把文件列出來
在查找 /root/ 500分鐘之內的寫入過的文件的同時把文件的詳細信息列出來。
如圖所示:
在上圖命令的基礎上增長了: -exec ls -l { } \
命令解析:
1.-exec<執行指令>:假設find指令的回傳值爲True,就執行該指令。
2.ls -l :顯示文件的詳細信息
3.{ } 表示find出來的文件的列表
# find /root/ -type f -mmin -500 -exec ls -l {} \;
[root@cham2 ~]# find /root/ -type f -mmin -500 -exec ls -l {} \; -rw-------. 1 root root 10116 10月 27 15:13 /root/.bash_history.bak -rwx------ 1 root root 1062 10月 27 14:36 /root/2.txt.bak
find 的出來後的文件更名字 或者拷貝一下
# find /root/ -type f -mmin -900 -exec mv {} {}.bak \;
[root@cham2 ~]# find /root/ -type f -mmin -900 -exec mv {} {}.bak \; [root@cham2 ~]# find /root/ -type f -mmin -900 /root/.bash_history.bak.bak /root/2.txt.bak.bak
查找/root/目錄下小於10k的文件,並列出詳細信息。
-exec
小於10K的
# find /root/ -type f -size -10 -exec ls -lh {} \;
[root@cham2 ~]# find /root/ -type f -size -10 -exec ls -lh {} \; -rw-r--r--. 1 root root 18 12月 29 2013 /root/.bash_logout -rw-r--r--. 1 root root 176 12月 29 2013 /root/.bash_profile -rw-r--r--. 1 root root 176 12月 29 2013 /root/.bashrc -rw-r--r--. 1 root root 100 12月 29 2013 /root/.cshrc -rw-r--r--. 1 root root 129 12月 29 2013 /root/.tcshrc -rw-r--r-- 1 root root 354 10月 19 12:20 /root/.ssh/known_hosts -rw------- 1 root root 1.7K 10月 18 23:58 /root/.ssh/id_rsa -rw-r--r-- 1 root root 392 10月 18 23:58 /root/.ssh/id_rsa.pub -rw------- 1 root root 789 10月 19 13:33 /root/.ssh/authorized_keys -rw-------. 1 root root 1.4K 10月 19 07:00 /root/anaconda-ks.cfg.1 -rw------- 1 root root 62 10月 24 13:35 /root/.lesshst -rw-r--r-- 1 root user1 0 10月 26 14:07 /root/234/chamlinux -rw-r--r-- 1 root root 0 10月 26 14:09 /root/234/chamlinux111 -rw-r--r-- 1 root root 195 10月 25 17:23 /root/111/12.txt -rw------- 1 root root 0 10月 25 17:19 /root/111/.12.txt.swp -rw------- 1 root root 0 10月 25 17:19 /root/111/.12.txt.swx -rw-r--r-- 1 root root 0 10月 25 17:20 /root/111/4913 -rw-r--r-- 1 root root 0 10月 25 17:20 /root/111/12.tx~ -rw-r--r-- 1 root root 0 10月 25 17:07 /root/22.txt -rw-rw-r-- 1 root root 135 10月 25 17:44 /root/11.txt -rw-r--r-- 1 root root 65 10月 25 17:20 /root/12.txt -rw-r--r-- 2 root root 0 10月 25 17:31 /root/1_heard.txt -rw-r--r-- 2 root root 0 10月 26 21:33 /root/88.txt -rw-r--r-- 2 root root 0 10月 26 21:33 /root/88_heard.txt -rwx------ 1 root root 1.1K 10月 27 14:36 /root/2.txt.bak.bak
大於10K的
[root@cham2 ~]# find /root/ -type f -size +10 -exec ls -lh {} \; -rw-r--r-- 1 root root 12K 10月 25 17:20 /root/111/12_txt.swp -rw------- 1 root root 12K 10月 25 17:02 /root/.1.txt.swp -rw-------. 1 root root 9.9K 10月 27 15:13 /root/.bash_history.bak.bak
大於10M同理
find的經常使用的用法
find :-type -mtime -mmin -size -o -exec -name
文件名後綴
在Linux下面命令或者文件是區分大小寫的
文件名後綴
· .txt文件文件
· .zip壓縮文件
· .tar.gz打包文件
· .conf配置文件
· .exe可執行文件
注: 在Linux系統中,文件的後綴名沒有具體的意義,加或不加都無所謂。可是爲了便於區分,咱們習慣在定義文件名時加一個後綴名。一個Linux文件能不能被執行,與他的第一欄的十個屬性有關, 與文檔名根本一點關係也沒有。
在Linux下,使用預設的Ext2/Ext3文件系統時,針對文件的檔名長度限制爲:
單一文件或目錄的最大允許文件名爲 255 個字符;
包含完整路徑名稱及目錄 (/) 之完整檔名爲 4096 個字符。
因爲Linux在文字接口下的一些指令操做關係,通常來講,你在設定Linux底下的文件名時, 最好能夠避免一些特殊字符比較好!例如底下這些:
? > < ; & ! [ ] | \ ' " ` ( ) { } *
注: 由於這些符號在文字接口下,是有特殊意義的!另外,文件名的開頭爲小數點『.』時, 表明這個文件爲『隱藏文件』!同時,因爲指令下達當中,經常會使用到 -option 之類的選項, 因此最好也避免將文件檔名的開頭以 - 或 + 來命名 。