2012-08-16 40 views
1

在我的Mac中,當我打開終端時,如何列出目錄中的所有文件和非只讀子目錄?Grep所有非只讀文件

只讀部分是我不確定的部分。

謝謝。

回答

2

首先定義或決定'非只讀'的含義。是不是隻讀的可執行文件?一個沒有權限的文件(它不是隻讀的,但它也不可讀)。

二,使用find用適當的選項(-perm,也許-maxdepth)生成的文件列表,然後執行grep

find . -type f ...other controls... -exec grep -e '36 inches' {} + 

+是最近的,但有用的創新。如果它不可用,您可以使用GNU find及其-print0來代替GNU xargs -0,但GNU find無論如何都支持+表示法。如果您沒有GNU find和GNU xargs,您可能不得不使用普通的-printxargs,但是這並不能正確處理名稱中帶有古怪字符(特別是空格,換行符)的文件名。

+0

也許使用xargs來保存PID:'find。 -type f ...其他控件... | xargs grep -e '36英寸'。 – 2012-08-16 13:58:28

+1

閱讀[+]選項[POSIX'find'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html);它可以在不使用'xargs'的情況下節省進程。 – 2012-08-16 14:21:05