리눅스에서 숨겨진 파일을 chmod하고 chown하는 방법?


33

숨겨진 파일을 재귀 적으로 실행 chmod하거나 chown숨기 려면 어떻게합니까 ?

sudo chmod -R 775 * 숨겨진 파일에서는 작동하지 않습니다.

같은 일이 간다 sudo chown -R user:group.

답변:


35

현재 디렉토리를 chmod 's해도 괜찮다면 -R그렇게하고 무거운 짐을지게하십시오. -R숨겨진 파일을 무시하지 않습니다.

sudo chmod -R 775 .

14
* .*가장 안전한 방법은 아닙니다 ( ). 특히, 그것은 상위 디렉토리로 재귀 할 것인데, 이것은 chmod현재 디렉토리의 형제이기도합니다. 올바른 방법은 * ..?* .[^.]*또는 더 나은 방법입니다 (와일드 카드를 고려하면 파일과 일치하지 않을 수 있습니다) $(ls -A).
jpalecek

1
@jpalecek :의 출력은 분석 할 수 없다 ls; 파싱하려고하면 문제가 발생합니다. 올바른 방법은 쉘 글 로빙을 사용하는 것입니다.
Scott Severance

리눅스에서 당신은 일을 X-작은지면 리눅스와 OS X와 스크립트, 이것은 당신이 예를 들어, 사용한다 순서 때 chmod를위한 인수의 순서를 변경하는 기능이 있지만 sudo chmod 775 -R아랫배까지 갈 것이 응답에 스틱 정도, .
kayleeFrye_onDeck

35

* 숨겨진 파일은 기본적으로 포함되지 않지만 bash에 있다면 다음과 같이 할 수 있습니다.

shopt -s dotglob

bash builtin매뉴얼 에서 이에 대해 더 읽으십시오 :

설정하면 Bash는`. '로 시작하는 파일 이름을 포함합니다. 파일 이름 확장 결과.

이 것 *역시 숨겨진 파일이 포함됩니다.

chmod -R 775 *

다음과 같이 비활성화하십시오.

shopt -u dotglob

2

2
(D)globbing 한정자를 사용합니다 . 예 :chmod -R 775 *(D)
slhck

2

또 다른 옵션은 findi 를 사용 하는 것입니다. 매우 세밀하게 제어 할 수 있기 때문입니다.

find <path to start from> -exec chown <options> {} \+

find -path '<path to include>' -exec chown <options> {} \+

유일한 단점은 find버전마다 구문이 다릅니다.


2

숨겨진 파일을 포함하여 재귀 적으로 현재 디렉토리의 모든 파일 :

chmod 755 -R ./* ./.[!.]*

현재 디렉토리에있는 모든 파일, 하지 재귀 숨겨진 파일을 포함하여 :

chmod 755 ./* ./.[!.]*

예를 들어 2 개의 점으로 시작하는 예외 파일 이름은 변경되지 않습니다. "./..thisonescapesunharmed.txt"

또한 "x"비트를 제거하지 않도록주의하십시오. 그렇지 않으면 모든 디렉토리에 액세스 할 수 없습니다 (dir에 cd하려면 x 비트가 필요함).

이 경고를 기억하십시오 : 절대로 사용 *하지 ./*말고 대신 사용하십시오.

디렉토리에 대한 권한 설정 문제를 피하려면 find대신 사용하십시오.

find . -type f -exec chmod `VALUE` {} \;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.