How to remove directories from Mac Mac의 임시 파일들을 삭제하는 방법을 게시했던 ._xxx, .DS_Store 등 숨김파일 정리 및 .gitignore 처리하기 에서 언급했던 방식을 응용해서 Node 기반의 개발에서 사용했던 node_modules 디렉터리를 일괄 삭제하는 방법을 정리해 본다. 개발하면서 참조한 소스들, 개발한 소스들이 많기 때문에 특정 경로 이하의 모든 node_modules 들을 찾아서 삭제하는 것보다는 일괄적으로 삭제 하기 위해서 find 명령을 사용하면 된다. $ find . -name "node_modules" -type d -prune -print -exec rm -rf '{}' + find . : 현재 경로를 루트 경로로 설정하고 검색 -name "node_modules" : "node_modules"라는 이름을 지정 -type d : 지정한 이름의 디렉터리만 찾도록 지정 -prune : "node_modules"가 발견되면 그 경로 하위로 내려가지 않도록 지정 -print : 검색된 대상의 경로 출력하도록 지정 -exec rm -rf '{}' + : 일치된 결과에 대한 삭제 처리를 수행하는데, {} + 는 마지막에 선택한 이름을 추가해서 명령줄을 빌드하도록 하는 것으로 전체 발견된 "node_modules"의 수보다 적은 횟수로 호출할 수 있도록 조정하는 것으로 성능 향상을 위한 것이다. 무조건 실행되면 다시 복구할 수 없는 상태 가 되므로 아래의 명령으로 실제 대상들이 제대로 검색되는지를 먼저 확인하고 진행하도록 한다. $ find . -name "node_modules" -type d -prune -print | xargs du -chs 254M ./K3Lab/RNDWorks/apigw/samples/etri/web/node_
How to set compinit mode on zsh KinD (Kubernetes in Docker)로 MacOS 상에 Multi-Nodes Kubernetes Cluster를 구성 하면서 kubectl autocomplete를 설정했는데 아래와 같은 메시지가 터미널 실행 시에 계속 나타나는 문제가 발생했다. zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? 정보를 찾아보니 대 부분 zsh와 관련된 소유권 문제를 많이 이야기하고 있었다. 즉, 외부의 패키지나 라이브러리 등을 설치할 떄 외부의 스크립트를 사용할 경우에 /usr/local/share 폴더의 소유권과 권한이 변경 되는 문제로 발생한다는 것이다. 상황을 확인해 보기 위해서 아래의 명령을 수행한다. $ compaudit There are insecure directories: /usr/local/share 또는 There are insecure directories: /usr/local/share/zsh/.site-functions /usr/local/share/zsh 위의 같은 결과를 확인할 수 있다. 결과를 바로 소유권 및 권한 처리를 하는 방법은 다음과 같다. # 검증 및 변경 처리 $ compaudit | xargs chmod g-w # 재 검증 $ compaudit There are insecure directories: 위의 방법이 아니라 개별적으로 처리하는 경우는 다음과 같다. /usr/local/share/zsh/.site-functions 가 나온 경우 $ cd /usr/local/share/zsh $ sudo chown -R root:root ./site_functions /usr/local/share 가 나온 경우 $ cd /usr/local/share/