폴더 1개를 제외한 모든 하위 폴더의 폴더 및 파일 권한을 변경해야 합니다. 현재 작동시키기 위해 몇 가지 find/exec 명령을 실행하고 있습니다.
e.g. find /mystuff/temp/videos -type d -exec chmod 777 {} \;
폴더 구조는 다음과 같습니다(필요한 권한이 있는 경우).
mystuff
-> folder1 (ignored)
-> subfolder1 (permissions changed)
-> folder2 (permissions changed)
-> folder3 (permissions changed)
가능합니까? 그렇다면 어떤 find
명령을 사용해야 합니까?
답변1
노력하다:
find /mystuff/temp/videos -type d ! -name 'folder1' -exec chmod 777 {} +
777 권한을 설정하면 안 됩니다. 이는 큰 보안 허점입니다.
답변2
-wholename
( )를 사용하여 !
테스트를 추가하면 디렉터리를 삭제할 수 있습니다 . 예를 들어:
find /mystuff/temp/videos ! -wholename 'mystuff/folder' -type d -exec chmod 777 {} \;
매뉴얼 페이지에서:
-wholename pattern File name matches shell pattern pattern. The metacharacters do not treat '/' or '.' specially; so, for example, find . -wholename './sr*sc' will print an entry for a directory called './src/misc' (if one exists).
*
쉘에서 패턴을 보호하기 위해 와일드카드( )를 사용하는 경우 패턴을 따옴표로 묶어야 합니다.