我有一個是尋找一些文件的一個shell腳本,它工作正常:排除未知數量從查找搜索多個目錄(UNIX)
find . -name "*.sh"
但在這裏,我們去:我要排除一些(讓我們來說說3 - dir1,dir2和dir3)目錄。所以我尋找方法來做到這一點,但我只找到「靜態」的解決方案。這意味着我找到了很多解決方案來解釋如何從查找搜索中排除3個目錄。但不能確定要排除的目錄數量 - 也許我需要排除3,也許5或甚至20.我想從輸入文件中讀取目錄作爲字符串(到目前爲止我已經有了讀取邏輯)和想要使用find動態地排除這些文件。
爲了澄清這一點:我有這樣一個字符串:'/home/dir1,/dir2,./dir3,./sub/dir4',我不知道這個字符串將包含多少個目錄,但是我想排除所有這些。
是否有使用REGEX參數或其他方法的解決方案?我目前正在研究SUN solaris,並使用sh-Shell。
每個幫助/提示將不勝感激,謝謝!
嗨,謝謝你的快速回答!我讀了關於-prune選項,但是如果我不知道需要排除多少個目錄,我該如何使用它?這將是一個很好的解決方案,但我認爲我無法動態構建此命令,具體取決於我需要排除多少個目錄。 – Pat
@Pat我回答瞭如何使用'!動態忽略dirs! -path'選項,如果這對你不起作用,但'-prune'確實可以,那麼將兩個答案結合起來。我在哪裏插入'! -path'你應該簡單地插入'-prune -o -type d -name'。 – ShellFish
更新了答案,希望能覆蓋更多的基地。 – tripleee