Files

查找具有組只寫權限的所有文件

  • February 12, 2019

在以下範例目錄中

$ 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
$

引用自:https://unix.stackexchange.com/questions/500149