특정 날짜 범위 내에서 들어오는 파일이 차지하는 공간을 찾는 방법,

특정 날짜 범위 내에서 들어오는 파일이 차지하는 공간을 찾는 방법,

내 요구 사항은 한 달에 소비되는 공간과 들어오는 파일 수를 찾는 것입니다. 예를 들어, "X" 디렉토리가 있다면 공간과 월을 알고 싶습니다.

다음은 세부 정보를 가져오는 데 사용한 명령입니다.

cd x
Output1=$(find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30 | wc -l)
Output2=$(find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30 | du -sk)
echo "Count of file is $Output1 and Space occupied by files is $Output2 KB"

a) 10월 1일부터 10월 31일까지, b) 10월 1일부터 11월 30일까지, c) 11월 1일부터 11월 30일까지 3가지 다른 범위에 대해 위 명령을 실행했습니다.

내 기대는 a) + b) = C 여야 하지만 그렇지 않습니다. 이에 대한 귀하의 생각을 공유해 주시겠습니까? 아니면 제가 사용하고 있는 명령에 문제가 있는지 알려주실 수 있나요? 아니면 내 요구 사항을 충족할 수 있는 더 나은 옵션이 있으면 공유해 주세요.

파일 개수는 3679280이고 점유된 파일 공간은 19766351768입니다. 파일 개수는 6857725이며 점유된 파일 공간은 19765912668입니다. 파일 개수는 3063226이고 점유된 파일 공간은 19765541452입니다.

답변1

-newermt 2017-10-31"10월 31일 0시 이후 수정됨"이라는 뜻이고,
! -newermt 2017-10-31"10월 31일 0시 이전 또는 당일 수정됨"을 의미하므로 후자에는 10월 31일 제작된 파일은 포함되지 않습니다. 를 사용하면 -newermt 2017-10-01 ! -newermt 2017-10-31해당 월의 마지막 날을 놓칠 수 있습니다.

$ find . -type f -newermt 2017-10-01 ! -newermt 2017-10-31
./oct30
$ find . -type f -newermt 2017-10-01 ! -newermt 2017-11-30
./oct30
./oct31
./nov01
$ find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30
./nov01

-newermt 2017-10-01 ! -newermt 2017-11-0110월 전체에 대한 데이터를 얻고 싶을 수 있지만 10월 31일부터 11월 1일 사이 자정에 생성된 파일도 10월 데이터로 계산됩니다. (아마도 이는 1초 미만의 타임스탬프가 있는 시스템에서는 문제가 되지 않을 것입니다.)

관련 정보