GNU는 디렉토리 내에서 파일 삭제를 찾았지만 디렉토리 자체는 유지합니다.

GNU는 디렉토리 내에서 파일 삭제를 찾았지만 디렉토리 자체는 유지합니다.

나는 이 문제를 알아내려고 오후의 대부분을 보냈습니다.

답변1

현재 디렉토리 아래에 있고 node_modules유지하면서 이름이 지정된 디렉토리 내의 모든 파일을 삭제하려면 다음을 수행하십시오 node_modules.

find . -path  '*/node_modules/*' -delete

(이것은 GNU로 테스트되었지만 findBSD/OSX도 비슷하게 작동할 것으로 예상됩니다 find.)

node_modules몇 가지 파일이 포함된 디렉터리를 만들어 보겠습니다 .

$ mkdir -p node_modules/dir{1..3}
$ touch node_modules/file{1..3}

find이제 이 명령 이 어떤 파일을 반환하는지 살펴보겠습니다 .

$ find . -path  '*/node_modules/*'
./node_modules/dir3
./node_modules/dir1
./node_modules/file3
./node_modules/file2
./node_modules/file1
./node_modules/dir2

이것은 파일을 보여줍니다내부에 node_modules하지만~ 아니다디렉토리 node_modules그 자체. 따라서 다음을 사용하여 파일을 삭제할 수 있습니다.

$ find . -path  '*/node_modules/*' -delete
$ ls
node_modules

관련 정보