Computer Science/linux

특정 파일이나 디렉토리를 남기고 모두 지우기

바닐라스카이 2018. 9. 3. 09:55
반응형

특정 파일이나 디렉토리를 남기고 모두 지우기



file.txt라는 이름의 파일을 남기고 나머지를 모두 지우기.


find . ! -name 'file.txt' -type f -exec rm -f {} +



디렉토리라면 type을 d로 바꾸고 rm 에 recursive 옵션을 추가하면 된다.


find . ! -name 'file.txt' -type d -exec rm -rf {} +

* 주의사항 

위의 디렉토리만 남기고 모두 지우기는 디렉토리 안의 파일도 모두 지움

디렉토리 수준에서만 적용하고 싶다면 아래처럼 사용한다


find . -maxdepth 1 ! -name 'file.txt' -type d -exec rm -rf {} +
depth제한을 둠으로써 하위 폴더로 내려가지 않고 현재 폴더에서만 적용.


여러 개의 파일을 남겨놓고 싶다면 아래처럼 추가 할 수 있다.


find . ! -name 'file.txt' ! -name 'file2.txt' -type f -exec rm -f {} +


Reference -

https://unix.stackexchange.com/questions/153862/remove-all-files-directories-except-for-one-file

반응형