find . -path ./src/emacs -prune -o -print
-a -o和 && || 一樣都有短路性;
實際可以理解為這樣(find condition1 && -prune || -print) find . -path ./src/emacs -a -prune -o -print, 如果find . -path ./src/emacs返回真(就是找到的內容匹配),那接著執行-prune進行忽略處理,由於短路原因跳過-print; 如果find . -path ./src/emacs返回假(就是說找到的內容不匹配),由於短路原因就會跳過-prune來執行-print,列印出這些不匹配的內容;
以此類推,不滿足條件1,2,3而滿足條件4的語句就該是這樣的:
find condition1 -prune -o condition2 -prune -o condition3 -prune -o condition4 -print
應用舉例:
紅色部分作用是排除.repo .git目錄,綠色部分作用是限制找到的檔案字尾必須是.c/.cc/.cpp/.h,藍色作用是將輸出的結果的間隔符號換成『\0'(以便處理檔名稱中包含空格的情況),紫色部分將結果作為grep的輸入(-0代表以』\0'作為間隔符),最後grep找到引數中要求的字元並且用顏色標記,加上行號。
function cgrep()
Linux下tar cp命令排除某個目錄或檔案
tar解壓gz檔案tar zxvf filename.tar.gz tar壓縮gz檔案tar zcvf filename.tar.gz dirname 有時候,我們打包壓縮某乙個目錄,而需要排除其中乙個目錄或檔案。這時我們使用tar命令,增加 exclude引數就能達到目的。我們以nginx為例,打...
find 排除 Linux 命令之 find 用法
1.概述 使用linux server命令列系統時,經常需要進行特定檔案的查詢,主要的查詢命令是find及grep,區別如下 1.1 find 根據檔案屬性進行查詢,如檔名 檔案大小 檔案所有者 訪問時間 修改時間 是否為空等 1.2 grep 根據檔案內容查詢,會對檔案的每一行按照給定的模式進行匹...
Linux之操作處理排除某個目錄或檔案
linux中移動,複製,刪除,打包排除某個目錄或檔案 移動,複製,刪除排除某個檔案或目錄 方式一 cp file1 dir2 data 複製檔案到 data 排除file1和dir2 mv file1 dir2 data 移動檔案到 data 排除file1和dir2 rm rf file1 dir...