Files
查找具有組只寫權限的所有文件
在以下範例目錄中
$ ls -l total 0 -rw-r--r-- 1 user testgroup 0 12 feb 12:00 file1 -rw-rw-r-- 1 user testgroup 0 12 feb 12:00 file2 -rw--w-r-- 1 user testgroup 0 12 feb 12:00 file3 -rw-r--r-- 1 user testgroup 0 12 feb 12:00 file4 -rw-rwxr-- 1 user testgroup 0 12 feb 12:00 file5
我想要組權限完全正確的
find
所有文件,即(僅寫權限)。-w-``2
我在用
$ bash --version GNU bash, versione 4.4.23(1)-release (amd64-portbld-freebsd12.0)
在 FreeBSD 12 上。它不是 GNU
find
。我的嘗試是
$ find . -perm -g+w ./file2 ./file3 ./file5
但這會返回所有至少具有組寫入權限的文件;我想列出只允許其組寫入的文件。如何做到這一點?
您可以添加更多條件以排除設置了其他權限位的文件。
find . -perm -g+w ! -perm -g+r ! -perm -g+x
或(如steeldriver的評論中所建議的)
find . -perm -g+w ! -perm /g+rx
例子:
$ ls -l file* -rw-r--r-- 1 bodo bodo 0 Feb 12 12:50 file1 -rw-rw-r-- 1 bodo bodo 0 Feb 12 12:50 file2 -rw--w-r-- 1 bodo bodo 0 Feb 12 12:50 file3 -rw--wxr-- 1 bodo bodo 0 Feb 12 12:50 file4 -rw-rwxr-- 1 bodo bodo 0 Feb 12 12:50 file5 $ find . -perm -g+w ! -perm -g+r ! -perm -g+x ./file3 $ $ find . -perm -g+w ! -perm /g+rx ./file3 $