재귀적으로 실행 파일 찾기

재귀적으로 실행 파일 찾기

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

-execfind 명령의 매개변수를 사용해야 합니다 .

$ 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

관련 정보