답변:
tar(1)
일반 사용자로 실행중인 경우 umask
기본적으로 적용됩니다 . 당신이 실행하는 경우 tar(1)
와 같은 root
, 당신은 줄 수 --no-same-permissions
요청하는 명령 행 옵션 tar(1)
을 존중를 umask
.
따라서 일반 사용자로 실행하십시오.
umask 022
tar zxvf file.tar.gz
또는 이것을 다음과 같이 실행하십시오 root
:
umask 022
tar zxvf file.tar.gz --no-same-permissions
당신은 충실 할 수 있습니다 umask 022
당신에 ~/.bashrc
, ~/.bash_profile
또는 ~/.profile
. bash(1)
시작 파일에 대한 자세한 내용은 맨 페이지를 참조하십시오 . 복잡합니다.
자세한 내용은 umask
셸 맨 페이지, umask(2)
시스템 호출 맨 페이지 또는 umask(1posix)
POSIX 제공 유틸리티 맨 페이지 ( manpages-posix
설치된 경우)에서 찾을 수 있습니다.
나는 나를 위해 일한이 솔루션을 발견했다. 폴더 및 하위 폴더의 경우 :
chmod -R 777 */
또한 모든 파일 (폴더 및 하위 폴더에도 있음) :
find . -type f -name "*" | xargs chmod 644
이것이 좋은 방법이 아니라면 모든 의견을 환영합니다. 방금 Linux를 배우기 시작했습니다.
다음과 같이 특수 문자를 잘 처리하는보다 강력한 솔루션은 다음과 같습니다.
find . -type f -print0 | xargs -0 chmod 644 # For files
find . -type d -print0 | xargs -0 chmod 755 # For directories
the': No such file or directory chmod: cannot access
Logo.txt에 액세스 할 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다 di
777
위험하며 매우 소수의 시스템에만 적용됩니다.
find . -type f -print0 | xargs -0 chmod 644
. 은 -name "*"
필요하지 않습니다, 그리고 xargs(1)
에 파일 이름 구문 분석 에 공백 이나 줄 바꿈 당신이 사용하지 않는 -0
- 아스키에 파일 이름 구문 분석 NUL
파일 이름에 표시 할 수없는 문자를. -print0
용은 find(1)
적합한 모드 출력을 포맷으로 요청 xargs -0
입력.