linux系統(tǒng)命令解析 linux常見的命令解析器

Linux find 命令詳解

find 命令的基本結(jié)構(gòu)如下:

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供中方網(wǎng)站建設、中方做網(wǎng)站、中方網(wǎng)站設計、中方網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、中方企業(yè)網(wǎng)站模板建站服務,十載中方做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

find [paths] [expression] [actions]

find 命令接受一個或多個 路徑 ( paths )作為搜索范圍,并在該路徑下 遞歸 地搜索。即檢索完指定的目錄后,還會對該目錄下的子目錄進行檢索,以及子目錄下的子目錄。。。直到到達目錄樹底部。

默認情況下(不帶任何搜索條件),find 命令會返回指定目錄下的 所有文件 ,所以常常需要通過特定的 expression 對結(jié)果進行 篩選 。

find 命令默認的 action 是將所有檢索結(jié)果打印至標準輸出??梢酝ㄟ^自定義 action ,讓 find 命令對搜索到的結(jié)果執(zhí)行特定的操作。

這里先不做詳細解釋,簡單地測試下 find 命令:

find 命令中的 -name 選項可以根據(jù)文件名稱進行檢索( 區(qū)分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

find /usr -name '*.txt' 查找 /usr 目錄下所有文件名以 .txt 結(jié)尾的文件

find /usr -name '????' 查找 /usr 目錄下所有文件名剛好為 4 個字符的文件

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名??梢允褂? -path 或 -ipath 選項。

如查找 /usr 下所有文件名以 .txt 結(jié)尾的文件或目錄,且該文件的父目錄必須是 src ??梢允褂靡韵旅睿?/p>

find /usr -path '*/src/*.txt'

如果只想搜索得到文件 或 目錄,即不想它們同時出現(xiàn)在結(jié)果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數(shù)如下:

find /usr -type d -name 'python*' 檢索 /usr 下所有文件名以 python 開頭的 目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄??瘴募次募餂]有任何內(nèi)容,空目錄即目錄中沒有任何文件或子目錄。

find ~ -type d -empty 檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 “反義” (類似于 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 不 以 .txt 為后綴的文件??梢允褂靡韵旅睿?/p>

find /usr -type f ! -name '*.txt'

也可以“翻轉(zhuǎn)”任何其他的篩選條件,如:

find /usr -type f ! -empty 檢索 /usr 下所有內(nèi)容不為空的文件

為了檢索歸屬于特定用戶的文件或目錄,可以使用 -user 選項。

find / -type f -user starky 檢索根目錄下所有屬主為 starky 的文件

類似于 -user 選項, -group 選項則可以根據(jù)文件或目錄的 屬組 進行檢索。

有些時候,需要根據(jù)文件創(chuàng)建或修改的時間進行檢索。

Linux 系統(tǒng)中,與文件相關(guān)聯(lián)的時間參數(shù)有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規(guī)則:

find /usr -type f -mtime 2 檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 天 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項:

find /usr -type f -mtime +50 -mtime -100 檢索 /usr 下 50 到 100 天之前修改過的文件

find /usr -type f -mtime 2 -amin 5 檢索 /usr 下兩天前被修改過且 5 分鐘前又讀取過的文件

-size 選項允許用戶通過文件大小進行搜索(只適用于文件,目錄沒有大小……)。

表示文件大小的單位由以下字符組成:

另外,還可以使用 + 或 - 符號表示 大于 或 小于 當前條件。

find / -size +1G 檢索文件大小高于 1 GB 的文件

find 命令可以使用 -perm 選項以文件權(quán)限為依據(jù)進行搜索。

如需要檢索 /usr 目錄下權(quán)限為 rwxr-xr-x 的文件,可以使用以下命令:

find /usr -perm u=rwx,g=rx,o=rx

搜索 /usr 目錄下所有權(quán)限為 r-xr-xr-x (即系統(tǒng)中的所有用戶都只有讀寫權(quán)限)的文件和目錄,可以使用以下命令:

find /usr -perm a=rx

很多時候,我們只想匹配文件權(quán)限的一個 子集 。比如,檢索可以直接被任何用戶執(zhí)行的文件,即只關(guān)心文件的執(zhí)行權(quán)限,而不用管其讀寫權(quán)限是什么。

上述的需求可以通過以下命令實現(xiàn): find / -type f -perm /a=x

其中 a=x 前面的 / 符號即用來表示只匹配權(quán)限的某個子集(執(zhí)行權(quán)限),而不用關(guān)心其他權(quán)限的具體設置。

-perm 選項也支持數(shù)字形式的文件權(quán)限標記。

find /usr -perm 644 搜索 /usr 目錄下權(quán)限為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結(jié)果數(shù)量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數(shù)。

find / -maxdepth 3 搜索時向下遞歸的層數(shù)最大為 3

在之前的例子中有出現(xiàn)多個搜索條件的 組合 以及對某個搜索條件的 反轉(zhuǎn) 。

實際上 find 命令支持 “and” 和 “or” 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括號 對搜索條件進行 分組 。注意 find 命令中的小括號常需要用 單引號 包裹起來。因小括號在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件

find /usr -type d -name 'python*'

該命令等同于:

find /usr -type d -a -name 'python*'

更復雜的組合形式如:

find / '(' -mmin -5 -o -mtime +50 ')' -a -type f

-delete 選項可以用來刪除搜索到的文件和目錄。

如刪除 home 目錄下所有的空目錄:

find ~ -type d -empty -delete

-exec 選項可以對搜索到的結(jié)果執(zhí)行特定的命令。

如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:

find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'

其中的 大括號 ( {} )作為檢索到的文件的 占位符 ,而分號( ; )作為命令結(jié)束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來。

每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然后執(zhí)行 -exec 后面的命令一次。

另一個很重要的用法是,在多個文件中檢索某個指定的字符串。

如在用戶主目錄下的所有文件中檢索字符串 hello ,可以使用如下命令:

find ~ -type f -exec grep -l hello {} ';'

創(chuàng)建 Gzip 格式的壓縮文件的命令為: tar -czvf filename.tar.gz list of files

現(xiàn)在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:

find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ';'

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。

原因是 find 命令 每次 發(fā)現(xiàn)一個音頻文件,都會再執(zhí)行一次 -exec 選項后面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給后面的壓縮命令。完整的命令如下:

find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

如果想瀏覽搜索到的文件(目錄)的詳細信息(如權(quán)限和大小等),可以直接使用 -ls 選項。

find / -type file -size +1G -ls 瀏覽所有 1G 以上大小的文件的詳細信息

A Guide to the Linux “Find” Command

find 命令手冊 : man find

linux awk命令詳解

awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在對數(shù)據(jù)分析并生成報告時,顯得尤為強大。

簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。

awk有三個不同的版本:awk、nawk和gawk,未作特別說明,一般指gawk,gawk是awk的GNU版本。

之所以叫awk是因為其取了三位創(chuàng)始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family

Name的首字符。

awk格式:

格式: sed -n '3p' sed.txt

找誰干啥(條件動作)

awk格式

#取出/etc/passwd 第1行的第1列和第3列

awk -F: 'NR==1{print $1,$3}' /etc/passwd

awk 選項 '條件{動作}' /etc/passwd

條件: 哪一行,過濾什么內(nèi)容

動作: print輸出與顯示 ,計算....

awk取行:與sed類似

案例01:取出sed.txt的第2行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt

102,zhangya,CTO

#awk '行號 等于 2' sed.txt

#NR awk內(nèi)置變量

Number of Record 記錄號(行號)

案例02:取出sed.txt中包含oldboy或lidao的行

[root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|lidao/p' sed.txt

103,lidao007,COO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|lidao/' sed.txt

103,lidao007,COO

110,lidao,COCO

案例03:取出文件第2行到第5行內(nèi)容

#awk '行號大于等于2 并且 行號小于等于5' sed.txt

#方法01

awk 'NR=2 NR=5' sed.txt #必會

表示并且.

#方法02

sed -n '2,5p' sed.txt

#方法03 了解

awk 'NR==2,NR==5' sed.txt #從行號是2的行開始 到 行號是5的行結(jié)束( 了解)

案例04:取出文件第3行到最后一行內(nèi)容

[root@oldboy81-golden-lnb /oldboy]# awk 'NR = 3' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# sed -n '3,$p' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

案例05:取出從包含oldboy的行到lidao的行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/lidao/p' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

[root@oldboy81-golden-lnb /oldboy]# awk '/old/ , /lidao/' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

linux常用命令解釋

linux常用命令有如下:

1、cp命令,作用復制,參數(shù)如下:

-a:將文件的特性一起復制。

-p:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用于備份。

-i:若目標文件已經(jīng)存在時,在覆蓋時會先詢問操作的進行。

-r:遞歸持續(xù)復制,用于目錄的復制行為。

-u:目標文件與源文件有差異時才會復制。

2、rm命令作用為刪除,參數(shù):

-f:就是force的意思,忽略不存在的文件,不會出現(xiàn)警告消息。

-i:互動模式,在刪除前會詢問用戶是否操作。

-r:遞歸刪除,最常用于目錄刪除,它是一個非常危險的參數(shù)。

3、mv命令作用為移動文件:

-f:force強制的意思,如果目標文件已經(jīng)存在,不會詢問而直接覆蓋。

-i:若目標文件已經(jīng)存在,就會詢問是否覆蓋。

-u:若目標文件已經(jīng)存在,且比目標文件新,才會更新。

4、pwd命令,作用為查看”當前工作目錄“的完整路徑。

pwd-P#顯示出實際路徑,而非使用連接(link)路徑;pwd顯示的是連接路徑。

5、rmdir命令刪除目錄:

rmdir [選項]... 目錄...

-p:遞歸刪除目錄dirname,當子目錄刪除后其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標準輸出上顯示相應的信息。

-v:verbose顯示指令執(zhí)行過程。

Linux常用命令詳解 | find

find 命令的基本結(jié)構(gòu)如下:

find 命令手冊 : man find

find 命令中的 -name 選項可以根據(jù)文件名稱進行檢索( 區(qū)分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

例1:查找 /usr 目錄下所有文件名以 .txt 結(jié)尾的文件

例2:查找 /usr 目錄下所有文件名剛好為 4 個字符的文件

例3:查以大寫字母開頭的文件

例4:查以兩個小寫字母和兩個數(shù)字開頭的txt文件

類似的還有:

-lname -ilname

-path -ipath

-regx -iregx

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。

例1:如查找 /usr 下所有文件名以 .txt 結(jié)尾的文件或目錄,且該文件的父目錄必須是 src ??梢允褂靡韵旅睿?/p>

例2:在當前目錄除aa之外的子目錄內(nèi)搜索 txt文件

例3:在當前目錄,不再子目錄中,查找txt文件

如果只想搜索得到文件 或 目錄,即不想它們同時出現(xiàn)在結(jié)果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數(shù)如下:

例:檢索 /usr 下所有文件名以 python 開頭的目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內(nèi)容,空目錄即目錄中沒有任何文件或子目錄。

例:檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 “反義” (類似于 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 不 以 .txt 為后綴的文件。可以使用以下命令:

也可以“翻轉(zhuǎn)”任何其他的篩選條件,如:檢索 /usr 下所有內(nèi)容不為空的文件

為了檢索歸屬于特定用戶的文件或目錄,可以使用 -user 選項。

例:檢索根目錄下所有屬主為 starky 的文件

類似于 -user 選項, -group 選項則可以根據(jù)文件或目錄的 屬組 進行檢索。

有些時候,需要根據(jù)文件創(chuàng)建或修改的時間進行檢索。

Linux 系統(tǒng)中,與文件相關(guān)聯(lián)的時間參數(shù)有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規(guī)則:

檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 天 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項。

查找比 aa.txt 新 的文件

查找比 aa.txt 舊 的文件

查找比aa.txt新,比bb.txt舊的文件

-size 選項允許用戶通過文件大小進行搜索(只適用于文件,目錄沒有大小……)。

表示文件大小的單位由以下字符組成:

另外,還可以使用 + 或 - 符號表示 大于 或 小于 當前條件。

檢索文件大小高于 1 GB 的文件

find 命令可以使用 -perm 選項以文件權(quán)限為依據(jù)進行搜索。

9.1使用符號形式

例1:如需要檢索 /usr 目錄下權(quán)限為 rwxr-xr-x 的文件,可以使用以下命令:

例2:搜索 /usr 目錄下所有權(quán)限為 r-xr-xr-x (即系統(tǒng)中的所有用戶都只有讀寫權(quán)限)的文件和目錄,可以使用以下命令:

很多時候,我們只想匹配文件權(quán)限的一個 子集 。比如,檢索可以直接被任何用戶執(zhí)行的文件,即只關(guān)心文件的執(zhí)行權(quán)限,而不用管其讀寫權(quán)限是什么。

上述的需求可以通過以下命令實現(xiàn):

其中 a=x 前面的 / 符號即用來表示只匹配權(quán)限的某個子集(執(zhí)行權(quán)限),而不用關(guān)心其他權(quán)限的具體設置。

9.2使用數(shù)字形式

例如:搜索 /usr 目錄下權(quán)限為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結(jié)果數(shù)量非常巨大??梢允褂? -maxdepth 限制 find 命令遞歸的層數(shù)。

例如:搜索時向下遞歸的層數(shù)最大為 3

在之前的例子中有出現(xiàn)多個搜索條件的 組合 以及對某個搜索條件的 反轉(zhuǎn) 。

實際上 find 命令支持 “and” 和 “or” 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括號 對搜索條件進行 分組 。注意 find 命令中的小括號常需要用 單引號 包裹起來。因小括號在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件

該命令等同于:

更復雜的組合形式如:

例4:在除dir0及子目錄以外的目錄下查找txt后綴文件

說明:-a 應該是and的縮寫,意思是邏輯運算符‘與’(); -o應該是or的縮寫,意思是邏輯運算符‘或’(||), -not 表示非.

命令行的意思是:如果目錄dir0存在(即-a左邊為真),則求-prune的值,-prune 返回真,‘與’邏輯表達式為真(即-path './dir0*' -a -prune 為真),find命令將在除這個目錄以外的目錄下查找txt后綴文件并打印出來;如果目錄dir0不存在(即-a左邊為假),則不求值-prune ,‘與’邏輯表達式為假,則在當前目錄下查找所有txt后綴文件。

-delete 選項可以用來刪除搜索到的文件和目錄。

例如:刪除 home 目錄下所有的空目錄:

-exec 選項可以對搜索到的結(jié)果執(zhí)行執(zhí)行該參數(shù)所給出的shell命令。形式為 command {} \; ,注意{}與\;之間有空格 。每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然后執(zhí)行 -exec 后面的命令一次。

例1:如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:

其中的 大括號 ( {} )作為檢索到的文件的 占位符 ,而分號( ; )作為命令結(jié)束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來或前面加上轉(zhuǎn)義符 \ 。

例2:查看當前目錄下的所有普通文件,并在 - exec 選項中使用 ls -l 命令將它們列出

例3:在多個文件中檢索某個指定的字符串。如在用戶主目錄下的所有文件中檢索字符串 hello ,可以使用如下命令:

創(chuàng)建 Gzip 格式的壓縮文件的命令為:

現(xiàn)在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。原因是 find 命令 每次 發(fā)現(xiàn)一個音頻文件,都會再執(zhí)行一次 -exec 選項后面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給后面的壓縮命令。完整的命令如下:

如果想瀏覽搜索到的文件(目錄)的詳細信息(如權(quán)限和大小等),可以直接使用 -ls 選項。

例如:瀏覽所有 1G 以上大小的文件的詳細信息

與exec作用相同,區(qū)別在于,在執(zhí)行命令之前,都會給出提示,讓用戶確認是否執(zhí)行

與 exec 作用相同 ,起承接作用。區(qū)別在于 |xargs 主要用于承接刪除操作 ,而 -exec 都可用 如復制、移動、重命名等

例1:查找以ap或may開頭的文件

例2:查硬連接數(shù)大于2的文件或目錄

例3:查找含特定字符串的文件。查找當前目錄下含有"the string you want find…"字符串的文件:

例4:從根目錄開始查tmpfile,一旦查到馬上刪除

例5:如何用find查找某一天更改的文件?可以使用這一行命令來實現(xiàn):

A Guide to the Linux “Find” Command

網(wǎng)站標題:linux系統(tǒng)命令解析 linux常見的命令解析器
標題來源:http://muchs.cn/article38/ddcdssp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、網(wǎng)站排名、虛擬主機品牌網(wǎng)站建設、手機網(wǎng)站建設、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設