내 디렉토리에는 지난 7일 동안의 오래된 날짜가 포함된 파일이 30개 이상 있습니다. 이제 생성/수정 날짜를 기준으로 파일을 압축해야 합니다.
예를 들어
4월 7일의 파일 10개 -- april7.zip의 zip 생성
4월 8일의 파일 10개 -- april8.zip의 zip 생성
4월 9일의 파일 10개 -- april9.zip의 zip 생성
답변1
일반적 find -mtime
으로 현재 시점을 기준으로 연령을 테스트하기 때문에 여기에서는 사용하기가 약간 어렵습니다.
GNU 날짜와 Bash를 사용하면 유사한 작업을 수행하여 파일 날짜에 해당하는 아카이브에 각 파일을 추가할 수 있습니다.
for f in * ; do
zip $(date -r "$f" +%F).zip "$f" # 2017-04-07.zip
done
또는:
for f in * ; do
d=$(date -r "$f" +%B%d)
zip ${d,,}.zip "$f" # april07.zip
done # ${var,,} is for lowercase
( date
수정 시간만 읽을 수 있습니다. 출력 형식을 수정하려면 더 많은 작업을 ctime
사용하고 수행해야 하기 때문입니다.)stat
어떤 이유로 처리하기 전에 특정 날짜의 모든 파일 목록을 가져와야 하는 경우 해당 파일을 배열로 수집할 수 있습니다.
files=()
date="2017-04-07"
for f in * ; do
[ "$(date -r "$f" +%F)" = "$date" ] && files+=("$f")
done
# do something with "${files[@]}', e.g.
# zip $date.zip "${files[@]}"
따라서 현재로서는 지정된 날짜 하나만 처리할 수 있습니다.