exec和xgars的區別

-exec的用法

注意:使用-exec命令時,命令會將所有匹配到的文件一起傳遞給-exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之后,就會出現溢出錯誤。錯誤信息通常是“參數列太長”或“參數列溢出”

用法

1:-exec選項后面跟隨著所要執行的命令或腳本,然后是一對兒{ },一個空格和一個\,最后是一個分號。
eg:下面的例子中,find命令匹配到了當前目錄下的所有普通文件,并在‐exec選項中使用ls ‐l命令將它們列出
find . ‐type f ‐exec ls ‐l { } \;
‐rw‐r‐‐r‐‐ 1 root root 34928 2003‐02‐25 ./conf/httpd.conf
‐rw‐r‐‐r‐‐ 1 root root 12959 2003‐02‐25 ./conf/magic
‐rw‐r‐‐r‐‐ 1 root root 180 2003‐02‐25 ./conf.d/README

記住:在使用exec命令的時候,用戶可能會執行刪除命令,在使用刪除命令刪除文件時,應當先查看相應的文件,以免誤刪文件,造成損失!當使用諸如mv或rm命令時,可以使用‐exec選項的安全模式。它將在對每個匹配到的文件進行操作之前提示你。

eg:在下面的例子中, find命令在當前目錄中查找所有文件名以.LOG結尾、更改時間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示。 $ find . ‐name "*.conf" ‐mtime +5 ‐ok rm { } ;
按y鍵刪除文件,按n鍵不刪除。

xgars的用法

xgars與-exec的區別

xargs命令每次只獲取一部分匹配到的文件而不是全部匹配到的文件,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續下去

xgars的用法

eg1:下面的例子查找系統中的每一個普通文件,然后使用xargs命令來測試它們分別屬于哪類文件
find . ‐type f ‐print | xargs file
./.kde/Autostart/Autorun.desktop: UTF‐8 Unicode English text
./.kde/Autostart/.directory: ISO‐8859 text\
......

eg2:在在當前目錄中查找內存信息轉儲文件(core dump) ,然后把結果保存到/tmp/core.log 文件中
find . name "file*" print | xargs echo "" > /temp/core.log
cat /temp/core.log
./file6

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容