5일이 지난 파일(로그 파일)을 삭제하려고 하는데, 삭제하지 않고 특정 파일만 보관해야 하는데, 다음을 사용해 보았습니다.
find . -type f -mtime +5 ! -name 'test2' -exec rm -f {} \;
그러나 이는 성공하지 못했습니다. 제가 사용하는 운영체제는 Centos 7 입니다.
답변1
보시다시피 테스트를 위해 다음 구조를 만들었습니다.
mkdir test && cd test && touch file1 file2 file3 lol test2
touch -t 200805101024 file*
이것을 얻으세요:
ls -la
total 8
drwxr-xr-x 2 root root 4096 Oct 13 18:09 .
drwxr-xr-x 4 phphil phphil 4096 Oct 13 18:09 ..
-rw-r--r-- 1 root root 0 May 10 2008 file1
-rw-r--r-- 1 root root 0 May 10 2008 file2
-rw-r--r-- 1 root root 0 May 10 2008 file3
-rw-r--r-- 1 root root 0 Oct 13 18:09 lol
-rw-r--r-- 1 root root 0 Oct 13 18:09 test2
올바른 명령을 실행한 후:
find . -type f -mtime +5 ! -name 'test2' -exec rm -f {} \;
상황은 예상대로입니다.
ls -la
total 8
drwxr-xr-x 2 root root 4096 Oct 13 18:09 .
drwxr-xr-x 4 phphil phphil 4096 Oct 13 18:09 ..
-rw-r--r-- 1 root root 0 Oct 13 18:09 lol
-rw-r--r-- 1 root root 0 Oct 13 18:09 test2
편집: 명령 또는 명령 매개변수에 대한 정보를 찾습니다.
명령 및/또는 매개변수의 동작이 확실하지 않은 경우 다음 단계를 따릅니다.
man find | less
그런 다음 다음과 같이 원하는 내용에 대한 명령 설명서를 검색할 수 있습니다.
- 유형
/
- 내가 생각하는 검색어를 적어보세요
-mtime
- 그런 다음 을 입력하여 다음 검색 용어로 이동
N
하거나 을 입력하여 이전 검색 용어로 이동할 수 있습니다.n
나는 다음과 같은 흥미로운 정보를 발견했습니다.
-mtime n File's data was last modified n*24 hours ago. See the comments for -atime to understand how round‐ ing affects the interpretation of file modification times.