Bash 스크립트는 list/find 명령의 각 고유 권한에 대한 파일을 생성하고 해당 권한의 각 디렉터리/파일 경로 인스턴스를 인쇄합니다.

Bash 스크립트는 list/find 명령의 각 고유 권한에 대한 파일을 생성하고 해당 권한의 각 디렉터리/파일 경로 인스턴스를 인쇄합니다.

디렉터리 트리에 있는 모든 파일/디렉터리의 권한과 전체 경로를 가져오고 각 고유 권한에 대한 파일을 생성하고 해당 파일에 대한 각 전체 파일 경로를 인쇄하기 위해 find 명령을 실행할 수 있는 bash 스크립트를 만들려고 합니다. 권한 파일. 그런 다음 나중에 스크립트를 실행할 때와 동일한 방식으로 이러한 파일을 읽고 해당 권한을 사용할 수 있습니다.

예를 들어:

drwxrwxrwx /home/user/testDirectory  
-rwxrwxrwx /home/user/testDirectory/testFile  
drwxr-xr-x /home/user/testDirectory/directory2  
-rwxr-xr-x /home/user/testDirectory/directory2/test2 

위의 명령은 각각 2줄씩 포함된 2개의 파일(예: 777.txt및 ) 을 생성합니다 .755.txt

각 고유 권한에 대한 파일을 생성한 다음 전체 파일 경로를 보내는 논리로 인해 어려움을 겪고 있습니다.

지금까지 내가 가진 것(배열이 필요한지 의심되지만 권한을 통해 배열을 정렬했으며 sort 명령에서 -k 1.2를 사용하여 d 플래그를 무시할 수 있습니다):

declare -a PERMS

i=0

while read line
do
     PERMS[$i]="$line"
     (( i++ ))
done < <( find /opt/sas94 -printf ""%M/" "%p/"\n")

답변1

이 시도:

#!/bin/bash

while read file; do
        stat -c '%A %n' "$file" >> $(stat -c '%a' "$file").txt
done < <(find "$1")

용법:

./script.sh /path/to/directory
  • 첫 번째는 stat -c '%A %n' "$file"파일의 권한과 경로를 인쇄합니다. 예를 들어-rw-rw-rw- /foo/bar
  • 두 번째는 stat -c '%a' "$file"8진수 형식으로 권한을 인쇄합니다.666

첫 번째 출력은 stat두 번째 에서 생성된 stat접미사가 붙은 파일 이름 에 추가됩니다 .txt.

관련 정보