일주일에 얼마나 많은 파일이 생성되었는지 확인하는 방법은 무엇입니까?

일주일에 얼마나 많은 파일이 생성되었는지 확인하는 방법은 무엇입니까?

일주일에 얼마나 많은 파일이 생성되었는지 확인하는 방법은 무엇입니까? 상황: 시스템이 정상적으로 실행 중인 경우 시스템은 매주 4개의 파일을 생성합니다. 예를 들어:

A_08-07-2015.csv
B_08-07-2015.csv
C_08-07-2015.csv
D_08-07-2015.csv

A_01-07-2015.csv
B_01-07-2015.csv
C_01-07-2015.csv
D_01-07-2015.csv

A_24-06-2015.csv
B_24-06-2015.csv
C_24-06-2015.csv
D_24-06-2015.csv

이제 시스템이 정상적으로 실행되는지 확인하기 위해 시스템이 매주 이 4개의 파일을 생성하는지 확인하는 쉘 스크립트를 작성하고 싶습니다. 그런데 어떻게 쓰는지 모르겠네요...

답변1

$ ls
A_01-07-2015.csv  B_01-07-2015.csv  C_01-07-2015.csv  D_01-07-2015.csv
A_08-07-2015.csv  B_08-07-2015.csv  C_08-07-2015.csv  D_08-07-2015.csv
A_24-06-2015.csv  B_24-06-2015.csv  C_24-06-2015.csv  D_24-06-2015.csv
$ ls | awk -F'[^0-9]' '{ print $5$4$3 }' | sort | uniq -c
      4 20150624
      4 20150701
      4 20150708
$ rm B_08-07-2015.csv
$ ls | awk -F'[^0-9]' '{ print $5$4$3 }' | sort | uniq -c
      4 20150624
      4 20150701
      3 20150708

이렇게 하면 4개의 파일이 없는 날짜를 쉽게 찾을 수 있습니다.


첫 번째 댓글에 대한 답변:

$ touch {A,B_B,banana,popaye}_{01-07,08-07,24-06}-2015.lol.csv
$ ls
A_01-07-2015.lol.csv  banana_01-07-2015.lol.csv  B_B_01-07-2015.lol.csv  popaye_01-07-2015.lol.csv
A_08-07-2015.lol.csv  banana_08-07-2015.lol.csv  B_B_08-07-2015.lol.csv  popaye_08-07-2015.lol.csv
A_24-06-2015.lol.csv  banana_24-06-2015.lol.csv  B_B_24-06-2015.lol.csv  popaye_24-06-2015.lol.csv
$ ls | awk -F'[^0-9]+' '{ print $4$3$2 }' | sort | uniq -c
      4 20150624
      4 20150701
      4 20150708
$ rm B_B_08-07-2015.lol.csv 
$ ls | awk -F'[^0-9]+' '{ print $4$3$2 }' | sort | uniq -c
      4 20150624
      4 20150701
      3 20150708

이 버전은 숫자가 아닌 모든 문자열을 필드 구분 기호로 허용하므로 날짜 앞의 접두사에도 숫자가 포함되어 있으면 실패합니다.

답변2

Unix/Linux 파일 시스템에서 파일 속성에는 일반적으로 생성 시간 필드가 포함되지 않습니다(예: VFAT 및 NTFS에 있음).

따라서 파일 이름의 날짜 패턴에 의존할 수 없다면 이전 파일 이름 목록을 유지하고 지난 주의 목록을 이번 주 목록과 비교해야 합니다.

두 방법 모두 지난 주에 존재했던 파일이 중간에 삭제되고 다시 생성되었음을 보장하지 않습니다. 상황을 더 이상 제한하지 않으면 어떤 파일이 생성되었는지 확인할 수 없습니다.

관련 정보