touch -am을 사용하여 액세스/수정 시간을 인위적으로 변경하는 이유는 무엇입니까?

touch -am을 사용하여 액세스/수정 시간을 인위적으로 변경하는 이유는 무엇입니까?

touch -a그래서 저는 with 와 touch -mone이 각각 파일에 대한 액세스 및 수정 시간을 변경할 수 있다는 것을 배웠습니다 .

그런데 왜?

위키피디아는 다음과 같이 말합니다.

"업데이트된 액세스 또는 수정 날짜는 백업 유틸리티나 make 명령줄 인터페이스 프로그래밍 유틸리티와 같은 다양한 다른 프로그램에 중요할 수 있습니다."

그러나 나는 아직도 그것을 이해하지 못한다.

실제 시나리오를 1~2개 가지고 있는 사람이 있나요? 또한 이 명령을 잘못 사용할 수도 있나요?

답변1

위키피디아 예제 중 하나에서는 make 명령과 함께 유용하다고 나와 있습니다. Make는 모든 소스 코드에 대한 빌드 스크립트가 포함된 Makefile을 실행하는 데 사용되는 프로그램이며, 명령을 실행하면 현재 Makefile의 수정 시간이 디렉터리에 저장됩니다.

이제 어떤 이유로든 소스를 다시 빌드하고 싶다고 가정해 보겠습니다. make를 다시 실행하면 이미 실행되었기 때문에 더 이상 할 일이 없다는 메시지가 표시됩니다. 따라서 touch -m "source.file"파일 수정을 시뮬레이션하기 위해 실행할 수 있습니다 . make를 세 번째로 실행하면 변경 사항이 인식되고 소스 코드가 다시 빌드됩니다.

또 다른 예는 강제로 백업하는 것입니다. 예를 들어 파일이 수정된 시점을 기준으로 파일을 백업하는 백업 유틸리티를 실행하는 경우. 수정 시간을 변경하여 프로그램이 파일을 강제로 백업(또는 백업에서 제외)하도록 할 수 있습니다.

파일의 나이에 대해 잘못된 인상을 남깁니다.

예를 들어 백업 구성표에 사용됩니다. 백업이 동일하거나 원격 호스트에 대한 느린 회선에서 백업을 업데이트하는 데 드는 비용과 비교하여 변경 사항이 관련이 없기 때문에 최신 백업으로 백업을 업데이트하지 않을 수 있습니다. 이를 달성하려면 가짜가 아니라 해당 파일의 유효성 타임스탬프가 이제 다른 것이라고 선언하여 백업 파일에 최신 타임스탬프를 표시하는 간단한 옵션이 있습니다.

파일의 연대에 대한 인상은 이제 실제로 거짓이지만 그 의미는 실제적이고 합법적입니다.

  • 답변이것더 많은 예를 찾을 수 있는 질문

관련 정보