2013-10-03 54 views
2

我是bash/shell腳本的新手。 我想查找目錄和子目錄中的所有文件,這些文件不以「.log」結尾。 我知道我可以使用下面的命令來獲得其爲「.log」結尾的文件,但我需要不與這個擴展名結尾的那些:如何在bash/shell腳本中查找不以「.log」結尾的文件

find /tmp/mallik5/ -iname "*.log" 

我怎樣才能做到這一點?

回答

3

find表達可以使它:

find /tmp/mallik5/ ! -name "*.log" 

如果你只是看文件,添加-type f

find /tmp/mallik5/ -type f ! -name "*.log" 
2
find /tmp/mallik5 -type f ! -name '*.log' 
2

你完成了一半,自己在實現任務通過了解GNU Find util是適當的工具。

情侶快速的解決方案將是

find /tmp/mallik5/ -not -name *.log 
find /tmp/mallik5/ ! -name *.log 

如果你想採取發現的結果採取行動,你可以嘗試:

find /tmp/mallik5/ -not -name *.log -print0 | xargs -0 rm -f 

上面一行幫助您查找並刪除名稱不以* .log結尾的文件

關於的知識模式匹配是解決任務的關鍵,瞭解更多。 Click Here

要了解更多關於GNU找到實用,visit here

相關問題