각 파일의 생성, 추가, 수정 및 마지막으로 열린 시간과 함께 디렉터리 및 하위 디렉터리의 파일 내용 목록을 만들려면 어떻게 해야 합니까?

각 파일의 생성, 추가, 수정 및 마지막으로 열린 시간과 함께 디렉터리 및 하위 디렉터리의 파일 내용 목록을 만들려면 어떻게 해야 합니까?

나는 Mac을 가지고 있으며 각 파일의 "생성", "추가", "수정" 및 "마지막으로 열린" 날짜와 함께 특정 디렉터리 및 해당 하위 디렉터리에 있는 모든 파일의 내용 목록을 만들어야 합니다.

다양한 스레드를 살펴보면 "ls" 또는 "stat" 명령을 사용하여 데이터 생성/추가/수정을 가져오는 방법을 알 수 있지만 모든 파일에 대한 마지막 열린 날짜 정보를 재귀적으로 가져오는 방법은 없습니다.

답변1

  • 만들다: UNIX에 포함된 원래 파일 속성 중 하나는 아니지만 이 속성은 오늘날 많은 파일 시스템(MacOS, HFS+와 가장 관련이 있는 것을 포함)에서 사용할 수 있으며 다음과 같은 최신 버전의 도구에서 액세스 방법 lsstat알고 있습니다 ls -U. 맨페이지에서).statB
  • 다음에 추가: 이 자체로는 존재하지 않습니다. 파일이 포함된 디렉터리의 마지막 수정 시간을 사용하여 파일이 추가(생성 또는 이동), 삭제(제거 또는 이동)되거나 이름이 변경되었을 때 디렉터리가 마지막으로 수정된 시간을 알아낼 수 있습니다. 하지만 어느 것이었는지는 알 수 없으며 최근 사건에 대한 정보만 얻을 수 있습니다.
  • 수정됨그리고마지막 액세스 시간: UNIX의 파일에 대한 원시 통계입니다. 대부분의 파일 시스템과 기본적으로 모든 도구 (문서에 설명된 대로 , , 및 사용) ls -u에서 지원 stat됩니다 . 모든 파일 액세스 시 디스크 쓰기를 저장하기 위해 마지막 액세스 타임스탬프 추적이 꺼지거나 조건부로 꺼지는 경우가 있습니다.am

당신이 언급하지 않은 또 다른 것이 있습니다.마지막 인덱스 노드 변경. 파일 내용이 아닌 파일 메타데이터가 마지막으로 변경된 시기를 추적합니다.

답변2

당신은 그것을 사용할 수 있습니다stat명령은 파일에 대한 정보를 나열합니다. 이 명령은 파일에 대해 운영 체제에서 기록한 4개의 타임스탬프를 모두 나열합니다.

  • %a: 액세스 시간(atime). 파일을 마지막으로 열거나 읽은 시간입니다(예: 내용 분석 또는 색인화).
  • %m: 수정 시간(mtime). 파일 내용이 마지막으로 수정된 시간입니다. 파일을 다른 곳에서 복사하거나 다운로드하는 경우 복사 시 mtime이 업데이트되는지 여부는 복사 방법에 따라 달라집니다.
  • %c:inode 변경 시간(ctime). 이 시간은 파일 읽기 이외의 작업(수정, 이름 변경, 이동, 권한 변경 등)이 발생할 때마다 업데이트됩니다.
  • %B: 출생시간(생성시간). 이는 일반적으로 파일이 생성되거나 다운로드된 시간이지만 일부 응용 프로그램의 경우 파일이 마지막으로 저장된 시간을 반영할 수 있습니다.

와 결합할 수 있습니다.find이 명령은 파일을 재귀적으로 나열합니다. 예를 들어, 현재 디렉터리에 있는 모든 일반 파일의 타임스탬프와 이름을 나열하려면 다음을 사용합니다.

find . -type f -exec stat -f '%Sa %Sc %Sm %SB %N' {} \;

관련 정보