권한을 재귀적으로 변경하는 것과 권한을 재귀적으로 변경하지 않는 것의 차이점

권한을 재귀적으로 변경하는 것과 권한을 재귀적으로 변경하지 않는 것의 차이점

chmod 777 * 명령과 재귀적으로 또는 일반적으로 권한을 변경하는 chmod -R 777 * 것의 차이점은 무엇입니까 ?

답변1

다음과 같은 디렉터리 구조가 있다고 가정합니다.

$ ls -lR
.:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 b

./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug  2 14:05 c

./a/b/c:
total 0

chmod 777 *현재 디렉터리에 있는 모든 파일의 권한을 0777로 설정 하면 됩니다 . 그러나 하위 디렉터리의 파일은 영향을 받지 않습니다. 즉, a/권한은 0777로 설정되지만 a/betc는 설정되지 않습니다 a/b/c.

$ chmod 777 *
$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 b    <=== Note

./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug  2 14:05 c    <=== Note

./a/b/c:
total 0

여기서 재귀가 발생합니다. chmod -R 777 *현재 디렉터리의 모든 하위 디렉터리에 있는 모든 파일과 디렉터리가 영향을 받습니다.

$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 b    <=== Note

./a/b:
total 4
drwxrwxrwx 2 user users 4096 Aug  2 14:05 c    <=== Note

./a/b/c:
total 0

참고: bash를 사용하는 경우 "모든 파일"의 의미는 값에 따라 다릅니다 dotglob. bash(1)도 마찬가지입니다.

관련 정보