linux中使用find和xargs

find命令

find命令的一般形式爲

find pathname -options [-print -exec -ok]
find命令的一般形式爲

find命令選項

find命令有很多選項或表達式,每一個選項其那面跟隨一個橫槓-。
-name 按照文件名查找文件
-perm 按照文件權限來查找文件
-prune 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用了-depth選項,那麼-prune選項江北find命令忽略。
-user 按照文件屬主來查找文件
-group 按照文件所屬的組來查找文件
-mtime -n +n 按照文件的更改時間來查找文件,-n表示文件更改時間距現在n填以內,+n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime選項,但他們都和-mtime選項相似,所以我們在這裏只介紹-mtime選項。
-nogroup 查找無有效所屬組的文件,即改文件所屬的組在/etc/groups中不存在
-nouser 查找五有效屬主的文件,即改文件的屬主在/etc/passwd中不存在
-newer file1 ! file2查找更改時間比文件file1新但比文件file2舊的文件
-type 查找某一類型文件,諸如:
b- 塊設備文件。
d-目錄
c-字符設備文件
p-管道設備文件
l-符號鏈接文件
f- 普通文件
-size n[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節記
-depth 在查找文件是,首先查找當前目錄中的文件,然後在在其他目錄中查找
-fstype 查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/ect/fstab中找到,改配置文件彙總包含了本系統中的有關文件系統的信息
-mount 在查找文件時不跨越文件系統mount點
-follow 如果find命令遇到符號鏈接文件,就個跟蹤至鏈接所指向的文件
-cpio 對匹配的文件使用cpio命令,講這些文件備份到磁帶設備中

使用name選項

在根目錄$HOME中查找文件名符合*.txt的文件
$ find ~ -name "*.txt" -print
想要在當前目錄及子目錄中查找所有的‘*.txt’文件,可以用:
$find . -name "*.txt" -print
想要在/etc目錄中查找所有的以host開頭的文件,可以用:
$find /etc  -name "host*" -print
想要$HOME目錄中查找所有的文件,可以用:
$find ~ -name "*" -print 或 find . -print
要想讓系統高負荷運行,就從根目錄開始查找所有的文件。
$find / -name "*" -print
在當前目錄查找文件名以兩個小寫字母開頭,跟着兩個數字,最後是*.txt的文件
$ find . -name "[a-z][a-z][0--9][0--9].txt" -print

使用perm選項

在當前目錄下查找文件權限位爲755的文件,即文件屬主可以讀寫執行,其他用戶可以讀執行的文件
$ find . -perm 755 -print
如果希望在當前目錄下查找所有用戶都可讀寫執行的文件(**小心這種情況**),我們可以使用find命令的-perm選項。在八進制數字前面要加一個橫槓-。在下面的命令中-perm代表按照文件權限查找,而‘007’和你在chmod命令的絕對值模式中所採用的表示法完全相同。
$ find . -perm -007 -print

忽略某個目錄

這裏寫圖片描述

使用user和nouser選項

例如在HOMEdave find ~ -user dave -print
在 /ect目錄下查找文件屬主爲uucp的文件
find/etcuseruucpprintnouser/home find /home -nouser -print

使用group和nogroup選項

例如在/apps目錄下查找屬於accts用戶組的文件
find/appsgroupacctsprint使nogroup find / -nogroup -print

按照更改時間查找文件

希望在系統目錄下常州啊更改時間在5日以內的文件
find/mtime5print/var/adm3 find /var/adm -mtime +3 -print

查找比某個文件新或舊的文件

-newer選項的一般形式爲
newest_file_name ! oldest_file_name
這裏寫圖片描述
這裏寫圖片描述

使用type選項

在/etc某錄下查找所有的目錄
find/etctypedprint find . ! -type d -print
爲了在/etc 目錄下查找所有的符號鏈接文件
$ find /etc -type l -print

使用size選項

以字節計量文件長度的表達形式爲Nc
以塊計量的文件長度只能用數字表示即可
爲了在當前目錄下查找文件長度大於1M字節的文件
find.size+1000000cprint/home/apache100 find /home/apache -size 100c -print
爲了在當前目錄下查找長度超過10塊的文件(一塊等於512字節)
$ find . -size +10 -print

使用depth選項

這裏寫圖片描述

使用mount選項

在當前文件系統中查找文件(不進入其他文件系統),可以使用find命令的mount選項
例如在當前目錄開始查找位於本文件系統中文件名以XC結尾的文件
$ find . -name “*.XC” -mount - print

使用cpio選項

cpio命令可以用來向磁帶設備備份文件或衝中恢復文件。可以用find命令在整個文件系統中查找文件,然後用cpio命令將其備份到磁帶上。
如果希望使用cpio命令備份/etc、/home和/apps目錄中的文件,可以使用下面搜給出的命令,不過要記住你是在文件系統的根目錄下:
$ cd /

$ find etc home apps -depth -print | cpio -ivcdC65536 -o \
/dev/rmt0
這裏寫圖片描述

使用exec或者ok來執行shell命令

這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述

find命令的例子

下面給出find命令的一下其他的例子

爲了匹配$HOME目錄下的所有文件,下面兩種方法都可以用
$ find  $HOME  -print
$ find ~ -print

這裏寫圖片描述這裏寫圖片描述

xargs

這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章