Test
이름이 지정된 디렉토리 와 그 안에 일부 디렉토리가 있습니다 . 두 Test
디렉터리와 그 안의 디렉터리에는 실행 파일이 있습니다. 를 사용하여 인쇄하고 싶습니다 ls
. 이 명령을 사용하겠습니다.
ls -l `find Test/ -perm /u=x,g=x,o=x -type f`
이것은 좋은/올바른/빠른 명령인가요?
내 솔루션은 다음과 같습니다
find Test/ -executable -type f -exec ls -l {} \;
그리고 같은 결과를 얻습니다보행자그리고프라딥 체트리공급.
답변1
사실이 아닙니다. 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
.
답변2
표시 되어 -exec
있으므로 사용할 필요가 없습니다 .find
-ls
$ find Test/ -perm /u=x,g=x,o=x -type f -ls
man
페이지 에서 :
-ls Correct; ls -dils 형식으로 표준 출력에 현재 파일을 나열합니다. 환경 변수 POSIXLY_CORRECT가 설정되지 않은 경우 블록 수는 1K 블록이며, 이 경우 512바이트 블록이 사용됩니다. 파일 이름의 특이한 문자를 처리하는 방법에 대한 자세한 내용은 예외 파일 이름 섹션을 참조하세요.
답변3
-exec
find 명령의 매개변수를 사용해야 합니다 .
$ find Test/ -perm /u=x,g=x,o=x -type f -exec ls -l {} \;
답변4
실행 파일 찾기현재의로그인 사용자
[sudo] find /path -type f -executable
또는 소유자/그룹/기타 중 하나 이상에 대해 실행 가능 비트가 설정되어 있는지 확인하십시오.
[sudo] find /path -type f -perm /111
또는 실행 가능소유자:
[sudo] find /path -type f -perm /100
또는
[sudo] find /path -type f -perm -100