둘 다 실행 파일을 받아야 하는데 숫자가 다릅니다.
[user@j6727961 ~]$ sudo find /usr -perm /a=x | nl
1 /usr
2 /usr/bin
3 /usr/bin/nroff
4 /usr/bin/gzexe
5 /usr/bin/catchsegv
6 /usr/bin/diff
7 /usr/bin/gzip
8 /usr/bin/gencat
9 /usr/bin/diff3
10 /usr/bin/zcat
11 /usr/bin/getent
12 /usr/bin/sdiff
13 /usr/bin/zcmp
14 /usr/bin/iconv
15 /usr/bin/db_recover
16 /usr/bin/ldd
17 /usr/bin/unxz
18 /usr/bin/zdiff
19 /usr/bin/locale
20 /usr/bin/xz
21 /usr/bin/zgrep
22 /usr/bin/localedef
23 /usr/bin/xzcat
-
-
-
-
17112 /usr/local/share/man/man8x
17113 /usr/local/share/man/man9
17114 /usr/local/share/man/man9x
17115 /usr/local/share/man/mann
17116 /usr/local/src
17117 /usr/src
17118 /usr/src/debug
17119 /usr/src/kernels
17120 /usr/tmp
-executable 플래그를 사용하면 다음과 같습니다.
[user@j6727961 ~]$ sudo find /usr -executable | nl
[sudo] password for user:
1 /usr
2 /usr/bin
3 /usr/bin/nroff
4 /usr/bin/gzexe
5 /usr/bin/catchsegv
6 /usr/bin/diff
7 /usr/bin/gzip
8 /usr/bin/gencat
9 /usr/bin/diff3
10 /usr/bin/zcat
11 /usr/bin/getent
12 /usr/bin/sdiff
13 /usr/bin/zcmp
14 /usr/bin/iconv
15 /usr/bin/db_recover
16 /usr/bin/ldd
17 /usr/bin/unxz
18 /usr/bin/zdiff
-
-
-
-
12218 /usr/local/share/man/man4x
12219 /usr/local/share/man/man5
12220 /usr/local/share/man/man5x
12221 /usr/local/share/man/man6
12222 /usr/local/share/man/man6x
12223 /usr/local/share/man/man7
12224 /usr/local/share/man/man7x
12225 /usr/local/share/man/man8
12226 /usr/local/share/man/man8x
12227 /usr/local/share/man/man9
12228 /usr/local/share/man/man9x
12229 /usr/local/share/man/mann
12230 /usr/local/src
12231 /usr/src
12232 /usr/src/debug
12233 /usr/src/kernels
12234 /usr/tmp
답변1
에 따르면 man find
:
-perm /mode
Any of the permission bits mode are set for the file.
그래서 -perm /a+x
파일과 일치합니다어느실행 가능한 비트가 설정되었습니다.
-executable
Matches files which are executable and directories which are
searchable (in a file name resolution sense). This takes into
account access control lists and other permissions artefacts
which the -perm test ignores. This test makes use of the
access(2) system call, and so can be fooled by NFS servers which
do UID mapping (or root-squashing), since many systems implement
access(2) in the client's kernel and so cannot make use of the
UID mapping information held on the server. Because this test
is based only on the result of the access(2) system call, there
is no guarantee that a file for which this test succeeds can
actually be executed.
그러면 -executable
파일과 일치합니다.현재 사용자는 access()
시스템 호출에 따라 접근 할 수 있습니다..
답변2
-executable
실행 가능하거나 탐색 가능한 파일이나 디렉터리를 찾고, 시스템 호출은 access
실행 중인 사용자 find
(귀하의 경우 루트)가 실행 가능하거나 탐색할 수 있음을 나타냅니다. -perm
파일 모드 비트를 확인하십시오. 대부분의 경우 이들 사이의 가장 중요한 차이점은 기본적으로 기호 링크가 역참조되지 않는다는 사실에서 비롯됩니다 find
. 즉, -perm
기본적으로 링크의 파일 모드 비트(보통 0777)를 확인하고 -exec
참조 파일의 비트를 확인합니다. . 파일 모드 비트는 access
심볼릭 링크가 항상 역참조되기 때문입니다.
요약: 일반적인 차이점은 find -perm /a=x
모든 심볼릭 링크가 포함되는 반면 find -executable
실행 파일이나 탐색 가능한 디렉터리에 대한 심볼릭 링크만 포함된다는 것입니다.