디렉터리에 최신 두 개의 폴더만 유지

디렉터리에 최신 두 개의 폴더만 유지

다음 폴더가 있는 디렉토리가 있습니다.

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

메모:먼저 테스트 환경에서 시도해 보고 이것이 정확히 수행하려는 작업인지 철저하게 확인하십시오. 또한 해당 스크립트가 디렉터리 세트에서 작동하는지 철저하게 확인하십시오.

관련 정보