文件及內容處理 - which、find
1. which:查找二進制命令,按環境變量PATH路徑查找
which命令的功能說明
which
命令用於查找文件。which
指令會在環境變量$PATH
設置的目錄裏查找符合條件的文件。which命令的語法格式
which
[options] [--] programname [...]which
[參數...] [命令]which命令的常用參數說明:
which
參數不多,表1爲which
命令的參數及說明:表1:
which
命令的參數及說明
參數選項 | 解釋說明 |
---|---|
-n<文件名長度> | 指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。 |
-p<文件名長度> | 與-n參數相同,但此處的<文件名長度>包括了文件的路徑。 |
-w | 指定輸出時欄位的寬度。 |
-V | 顯示版本信息。 |
which命令的實踐操作
範例1:
which
查找二進制命令,按環境變量PATH
路徑查找,顯示所有路徑
[root@m01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
範例2: 查找一個二進制命令的絕對路徑,例如
cp
命令
[root@m01 ~]# which cp
alias cp='cp -i' <-->別名
/bin/cp <-->cp命令的絕對路徑
2. find:從磁盤遍歷查找文件或目錄
find命令的功能說明
find
命令用來在指定目錄下查找文件。任何位於參數之前的字符串都將被視爲欲查找的目錄名。如果使用該命令時,不設置任何參數,則find
命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。find命令的語法格式
find
[-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]find
path -option [ -print ] [ -exec -ok command ] {} \;find命令的常用參數說明:
find
根據下列規則判斷path
和expression
,在命令列上第一個 - ( ) , ! 之前的部份爲 path,之後的是expression
。如果path
是空字串則使用目前路徑,如果expression
是空字串則使用expression
。,表1爲find
命令的參數及說明:表1:
find
命令的參數及說明
expression
中可使用的選項有二三十個之多,在此只介紹最常用的部份。
參數選項 | 解釋說明 |
---|---|
-mount, -xdev | 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件 |
-amin n | 在過去 n 分鐘內被讀取過 |
-anewer file | 比文件 file 更晚被讀取過的文件 |
-atime n | 在過去n天內被讀取過的文件 |
-cmin n | 在過去 n 分鐘內被修改過 |
-cnewer file | 比文件 file 更新的文件 |
-ctime n | 在過去n天內被修改過的文件 |
-empty | 空的文件-gid n or -group name , gid 是 n 或是 group 名稱是 name |
-ipath p, -path p | 路徑名稱符合 p 的文件,ipath 會忽略大小寫 |
-name name, -iname name | 文件名稱符合 name 的文件。iname 會忽略大小寫 |
-size n | 文件大小 是 n 單位,b 代表 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。 |
-type c | 文件類型是 c 的文件。常用的爲d:表示目錄,c:表示文件 |
-pid n | process id 是 n 的文件 |
find命令的實踐操作
範例1: 將目前目錄及其子目錄下所有延伸檔名是
c
的文件列出來。
find . -name "*.c"
範例2: 將目前目錄其其下子目錄中所有一般文件列出
find . -type f
範例3: 將目前目錄及其子目錄下所有最近 20 天內更新過的文件列出
find . -ctime -20
範例4: 查找
/var/log
目錄中更改時間在 7 日以前的普通文件,並在刪除之前詢問它們
find /var/log -type f -mtime +7 -ok rm {} \;
範例5: 查找前目錄中文件屬主具有讀、寫權限,並且文件所屬組的用戶和其他用戶具有讀權限的文件
find . -type f -perm 644 -exec ls -l {} \;
範例6: 爲了查找系統中所有文件長度爲0的普通文件,並列出它們的完整路徑
find / -type f -size 0 -exec ls -l {} \;
今天就寫到這裏,有什麼疑問或出現什麼錯誤,隨時歡迎大神們發表評論指點迷津