Find
遞歸查找執行檔
我有
Test
一個目錄,裡面有幾個目錄。兩者Test
及其內部的目錄都有執行檔。我想用 列印它們ls
。我會使用這個命令。ls -l `find Test/ -perm /u=x,g=x,o=x -type f`
這是一個好/正確/快速的命令嗎?
我的解決方案是:
find Test/ -executable -type f -exec ls -l {} \;
並得到了與warl0ck和pradeepchhetri提供的相同的結果。
不是真的,您可以將 ls 命令與 find 集成,
find Test/ -type f -perm /u=x,g=x,o=x -exec ls -l {} \;
更新
實際上
-executable
不等同於-perm /u=x,g=x,o=x
. 您可能擁有隻能由組或其他人執行的文件,這些文件不會顯示。因此,取決於您的目的,如果您希望文件只能由您執行,那麼可以使用
-executable
.
不需要使用
-exec
,因為find
帶有-ls
標誌。$ find Test/ -perm /u=x,g=x,o=x -type f -ls
從
man
頁面:-ls 真;在標準輸出上以 ls -dils 格式列出目前文件。塊計數為 1K 塊,除非設置了環境變數 POSIXLY_CORRECT,在這種情況下使用 512 字節塊。有關如何處理文件名中的異常字元的資訊,請參閱 UNUSUAL FILENAMES 部分。