日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

-exec rm 与 xargs rm -rf 深度剖析

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 -exec rm 与 xargs rm -rf 深度剖析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

前言

正文

相同點

不同點

-exec rm

xargs rm -rf


前言

我們在 linux 機器上刪除搜索到的文件和目錄時,總會遇到這樣的抉擇:對于?-exec rm -rf 和?xargs rm -rf 兩個命令,應該用哪個呢?而且網上很多文章簡直不負責任,有的甚至把二者的區別寫反了。今天這篇文章就算撥亂反正啦。

正文

相同點

二者都可以刪除指定的目錄或者文件,而且都是強制刪除。

不同點

二者在具體的執行策略上有所不同,下面詳細介紹。

-exec rm

exec 命令用來調用并執行指定的其他命令。但是,我們比較推薦在 shell 腳本程序中使用 exec 命令,調用其他的命令。因為如果在當前終端中使用該命令,則當指定的命令執行結束后會立即退出終端。(友情提示大家動手嘗試時千萬要注意呦

示例命令:

exec ls?

如果你想嘗試 exec 命令的這個特性,可以新打開一個終端,然后復制上面的命令,看一看效果!

最后,提醒大家需要注意的是 exec 命令必須由一個 ; 結束,因為?shell 一般會對 ; 進行解析,所以借用轉義字符 \; 防止這種情況發生。另外,上面的命令不能直接執行目錄和文件,完整的命令如下:

exec rm?{} \;

其中,{} 用來接受其他命令傳入的參數集合,比如搜索當前目錄下所有的日志文件并刪除,命令如下:

find ./ -name "*.log" ?-exec rm {} \;

注意:和其他命令一起使用時,前邊需要加鏈接符 - ,但是使用時不需要。?

xargs rm -rf

xargs 命令的作用是給別的命令傳遞參數,一般會配合管道符 | 來使用,把前一命令的 stdout 輸出作為自己的 stdin 輸入,再轉換成 command line 形式的參數傳給其它命令。

相比較 exec 單次執行所有參數集合,xargs 命令會將最終的命令轉換成單獨的命令再執行,從而在一定程度上避免“參數太多”類似的錯誤。因此,在進行大量文件和目錄刪除操作時,比較推薦使用 xargs 命令。

好了,為了更加形象的對比二者在使用時的區別,現在使用 xargs 命令搜索并刪除當前目錄下的所有日志文件,應該使用什么命令呢,具體命令如下:

find ./ -name "*.log" | xargs rm -rf

是不是更加簡單?至少個人是這么認為的,比較符合我們一般組合命令的使用習慣。?

下面簡單看一下 xargs 命令的其他用法,打印文件名字符串,具體效果如下圖所示:

作者簡介:😄大家好,我是 Data-Mining(liuzhen007),是一位音視頻技術愛好者,前后就職于傳統廣電巨頭和音視頻互聯網公司,具有豐富的音視頻直播和點播相關經驗,對 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公眾號:玩轉音視頻。同時也是 CSDN 博客專家、華為云社區云享專家、簽約作者,歡迎關注我分享更多干貨!😄

總結

以上是生活随笔為你收集整理的-exec rm 与 xargs rm -rf 深度剖析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。