Bash에서 명령을 실행하는 경우 해당 명령을 실행하여 어떤 파일과 디렉터리가 수정되었는지 확인할 수 있는 방법이 있습니까?
예를 들어, 다음을 실행하면:
export $MYDIR="/home/users/myuser/"
touch $MY_DIR/*
수정된 파일을 나열하고 싶습니다.
/home/users/myuser/file1
/home/users/myuser/file2
/home/users/myuser/file3
그러나 구체적으로 그런 것은 아닙니다 touch
. 나는 해결책이 일반적이기를 바랍니다.어느주문하다.
가능합니까?
답변1
이 사용 사례에 제가 정말 좋아하는 몇 가지 도구가 있습니다.
maybe
명령을 실행하지만 파일 시스템에 대한 수정 사항을 가짜로 만든 다음(실행하지 않고 성공한 척하고 기록) 모든 변경 사항 목록을 표시한 다음 명령을 다시 실행할지 여부를 결정할 수 있습니다. 완벽하지는 않습니다.질문 목록, 그러나 많은 경우에 충분합니다.- 로깅 파일 시스템파일 시스템에 대한 모든 변경 사항이 통과되도록 허용하지만 구성 가능한 방식으로 기록하는 저널 파일 시스템 재정의를 제공합니다(참조:LoggedFS 구성 파일 구문더 알아보기).
파일 시스템 작업을 추적하는 데 일반적으로 사용되는 기타 도구에는 다음이 포함 inotifywait
됩니다 auditd
.Linux 파일 액세스 모니터링더 알아보기.
답변2
기본/간단한 솔루션의 경우 먼저 파일을 만든 다음 작업 후 a를 실행하여 find
해당 파일보다 최신 파일을 표시하시겠습니까?
touch /tmp/myfile
( do stuff )
find ${MY_DIR} -newer /tmp/myfile
@roaima가 지적했듯이 이는 "결과적으로 수정된 파일 및 디렉터리" 요구 사항만 해결하며 삭제된 파일은 식별하지 않습니다.