반응형
특정 파일이나 디렉토리를 남기고 모두 지우기
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
반응형
'Computer Science > linux' 카테고리의 다른 글
linux 계정 정보 옮기기 (1) | 2019.08.21 |
---|---|
tar 디렉토리 지정해서 압축 풀기 (0) | 2018.10.04 |
리눅스에서 프록시 설정하기 (0) | 2018.07.26 |
neocomplcache vim plugin 설치하기 (0) | 2018.07.12 |
samba 설정하기 (0) | 2018.02.02 |