![디렉터리에 최신 두 개의 폴더만 유지](https://rvso.com/image/1415072/%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%B5%9C%EC%8B%A0%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%ED%8F%B4%EB%8D%94%EB%A7%8C%20%EC%9C%A0%EC%A7%80.png)
다음 폴더가 있는 디렉토리가 있습니다.
Data-2014-07-10-0240
Data-2014-07-10-0340
Data-2014-07-11-1232
Data-2014-07-12-0530
Data-2014-07-13-1210
최신 폴더 2개만 유지하고 나머지는 삭제하고 싶습니다. 폴더의 형식은 다음과 같습니다 Data-YYYY-MM-DD-HHMM
.
폴더 이름을 비교하여 최신 이름을 유지하고 나머지는 삭제할 수 있는 방법이 있습니까? 나중에 쉘 스크립트에서 이를 수용할 수 있습니다.
답변1
나는 디렉토리의 이름이 디렉토리 생성의 타임스탬프이기도 하다고 가정합니다. 그렇다면 사용할 수 있습니다ㅋㅋㅋ디렉토리 수정 시간에 따라 파일을 나열합니다.
최신순으로 디렉토리가 나열됩니다.
cd /PATH/TO/PARENT-DIRECTORY/
ls -lt
최신 2개 파일을 제외한 모든 디렉토리를 삭제하려면:-
cd /PATH/TO/PARENT-DIRECTORY/
ls -lt | tail -n +4 | awk '{print $9}' | xargs rm -r
메모:먼저 테스트 환경에서 시도해 보고 이것이 정확히 수행하려는 작업인지 철저하게 확인하십시오. 또한 해당 스크립트가 디렉터리 세트에서 작동하는지 철저하게 확인하십시오.