find到帶空格檔名用xargs處理的技巧

2021-04-21 09:35:04 字數 411 閱讀 1955

find和xargs是最好的組合,可以說是linux shell下的瑞士軍刀,用xargs配合find,比直接用find的-exec引數,速度更快,用法也更直觀。

基本的用法比如:

find ./ -name '*.bak' | xargs rm -rf

一般情況,上面這個命令執行的很好,但是如果找到的檔名代空格,上面的命令執行就可能會出問題了。

find有乙個引數-print0,於預設的-print相比,輸出的序列不是以空格分隔,而是以null字元分隔。而xargs也有乙個引數-0,可以接受以null而非空格間隔的輸入流。所以說xargs簡直就是為find而生的。上面的問題就很好解決了:

find ./ -name '*.bak' -print0 | xargs -0 rm -rf

bat for 處理帶空格的檔名

時常需要把乙個舊版本的svn專案轉化成新的工程.但是舊片的svn工程裡面還有很多的.svn資料夾.手工刪除這些資料夾顯然不是很好的方法.由是想到了寫批處理自動遍歷和刪除.svn資料夾.但是在寫批處理的時候遇到乙個問題.如果資料夾帶有空格的話.for命令只取空格前面的資料.在網上查了很久,試用了很多方...

linux shell 點號 空格 檔名

今天在看 etc init.d nginx指令碼時,發現指令碼中存在大量行為 點號 空格 檔名 甚是不解。比如檔案開始的幾行 if r etc default nginx then etc default nginx fi.lib init vars.sh lib lsb init function...

find命令 檔名字尾2 23 2 26

2.23 2.25 find命令 find搜尋檔案或路徑 一 常規用法 當我們只知道目標檔案,但不知道具體路徑,只知道大概範圍時。比如我想搜尋 etc 下的名字叫 sshd 相關的檔案 find etc name sshd etc ssh sshd config etc systemd system...