2011-08-05 62 views
0

我試圖做所有圖像文件超過在目錄/用戶Ÿ像素X搜索/(這是Mac OS上,是的,一個「危險」的搜索,我知道了。)如何排除./。從shell腳本搜索目錄?

int main(){ 
    FILE *pf; 
    pf = popen("cd ~/ ; find . -type f '!' '(' -path ".*" ')' -print0 | xargs -0 file | grep 'image data'","r"); 
} 

這給出了錯誤find: ./.fseventsd: Permission denied我需要跳過任何以.開頭的目錄,但似乎無法使用上述! (-path ".*")命令使其工作。

很多有關如何跳過的信息文件;似乎無法找到任何有關目錄

回答

0

-path。只匹配'。'所以試試

find . -type f '!' '(' -path "./.[a-z]*" ')' 
0

你想要做點像(-type d -name '.*' -prune) -or ($EXP -print)其中$EXP是你表達的其餘部分。這將修剪任何名稱匹配「。*」的目錄,然後它會將您的表達式應用於其他所有內容。最後print的存在意味着與表達式的其餘部分進行「與」運算,並在此處用於防止修剪目錄打印。

+0

這看起來很有前景,我不會收到錯誤;然而用'(-type d -name'。*'-prune) - 或'我沒有得到任何輸出。 – buildsucceeded

+0

當然你沒有得到任何輸出。你省略了下半場。你想要的完整表達式基於上面的內容將看起來像'\(-type d -name'。*'prune \) - 或者(-type f -print0 \)'(我跳過了你的'-path '主要因爲我認爲這是試圖修剪點文件夾)。 –

+0

哈哈,不,我有'-print' ...'發現。 -type f'!' '('-path「./.[a-z]*」')'-print | xargs -0文件| grep'圖像數據'| tr'\ 012''\ 000''仍然沒有輸出,只是簡單地查找。 -type f'!' '('-path「./.[-z]*'')'-print'。任何想法我可能做錯了什麼? – buildsucceeded