로컬 디렉토리에 여러 npm 프로젝트가 저장되어 있습니다. 이제는 node_modules
많은 공간을 차지하고을 사용하여 언제든지 검색 할 수 있으므로 폴더 없이 내 프로젝트를 백업하고 싶습니다 npm install
.
따라서 명령 줄 인터페이스를 사용하여 지정된 경로에서 모든 node_modules 폴더를 재귀 적으로 삭제하는 솔루션이 필요합니다. 모든 제안 / 도움은 매우 감사합니다.
답변:
삭제할 디렉토리 목록을 인쇄합니다.
find . -name 'node_modules' -type d -prune
현재 작업 디렉토리에서 디렉토리 삭제 :
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
또는 단계적 삭제를 위해 휴지통 ( brew install trash
)을 사용할 수 있습니다 .
find . -name node_modules -type d -prune -exec trash {} +
/node_modules/gulp-server-livereload/node_modules: Directory not empty
경우 많은 "내부"node_modules 폴더에 들어갑니다. 이 문제를 해결하는 방법은 무엇입니까?
'{}' +
무엇입니까?
{}
find
찾은 파일 경로로 대체 되는 자리 표시 자입니다 . 각각에 대해 실행하지 않고 단일 명령에 모든 파일 경로를 추가하도록 +
지시 find
합니다 rm
.
수용된 답변을 개선하고,
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
나는 명령은 내가 사용하는 것이 좋습니다하려는 명령 재개를 만들기 위해, 모든 폴더를 가져 오기 한 후 삭제 명령을 실행하는 데 시간이 오래 실행하는 것을 발견 \;
하고 명령 실행되고 사용의 진행 상황을 볼 수 -print
있는 디렉토리가 삭제되는 것을 볼 수 있습니다.
참고 : 먼저해야한다 cd
루트 디렉토리에 다음 명령을 실행하거나 대신 find .
사용find {project_directory}
폴더를 하나씩 삭제하려면
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;
폴더를 하나씩 삭제하고 삭제중인 폴더를 인쇄하려면
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
편집하다:
대화식 방법을 좋아하는 사람들은 @jeckep 답변을 참조하십시오. 정리하려는 디렉토리에서 이것을 실행하십시오.
npx npkill
-prune
중요한 최적화입니다. 그것은으로 재귀하지 찾을 경우 것입니다node_module
(중첩 node_modules을 찾기 위해) 디렉토리