파일을 만들기 전에 파일을 수정할 수 있습니까? [복제]


9

작성된 날짜 이전의 수정 된 날짜를 가진 파일을 가질 수 있습니까? 이 이벤트가 발생하는 조치는 무엇입니까?


7
파일을 작성하십시오. 시계를 다시 돌립니다. 파일을 수정하십시오. 시계를 다시 넣으십시오.
DavidPostill

@DavidPostill 적어도 Windows에서는 시스템 시간을 변경하려면 관리자 권한이 필요하지만 재미있는 파일 시간을 만들지 않는 다른 방법이 있습니다.
벤 N

답변:


8

추출 된 .tar 아카이브를 고려하십시오. 일반적으로 추출 된 파일에는 아카이브 내용에서 마지막으로 수정 한 타임 스탬프가 있습니다 (일반적으로 시간 여행자가 아닌 한 과거입니다). 파일 시스템에 관한 한,이 파일들은 방금 생성되었습니다.

기존 파일의 수정 시간을 변경하는 유틸리티도 있습니다 (예 : Linux의 경우 touch 명령).


그리고 하나의 파일에 대해 cp -p와 같은 그것을 모방 것들 rcp -pscp -p뿐만 아니라, rsync함께 -t또는 -a소스에서 modtime 걸립니다.
dave_thompson_085

"창조 시간"은 * nix가 아닌 Windows 용어입니다. * nix에는 "변경 시간"이 있으며 "생성 시간"과 혼동하기 쉽지만 같은 것은 아닙니다.
plugwash

ext4는 "생성 시간"과 비슷하지만 "생성 시간"과 비슷한 "출생 시간"을 저장하지만 액세스 할 수있는 좋은 방법은 없습니다. unix.stackexchange.com/a/50184/122182
plugwash

8

처음부터 파일을 작성하면 "지금"작성 시간과 "지금"수정 날짜가 표시됩니다. 이제이 파일을 다른 드라이브로 복사한다고 상상해보십시오. Windows는 수정 시간을 유지하지만, 해당 파일의 생성 시간은 해당 드라이브에 파일을 복사 한 시간 (파일이 작성된 즉, 시간이 설정됩니다 드라이브). 그렇게 간단합니다.

실제로 맞습니다.

  • 파일 내용이 마지막으로 변경된 시간은 수정 시간에 저장됩니다.
  • 이 드라이브에서 파일이 작성된 시간은 작성 시간에 저장됩니다.

이 의견은 생성 / 수정 된 날짜 불일치가 발생할 가능성이 매우 높은 시나리오를 보여 주므로 가장 적합합니다.
Shukri Adams

7

Windows에서는 파일을 만들고 수정 한 시간을 설정하기가 매우 쉽습니다. 컴퓨터의 시계를 변경할 필요는 없습니다. 로컬 관리자 액세스가 필요하지 않습니다. 필요한 파일에 대한 쓰기 권한 만 있으면됩니다.

PowerShell을 사용하여 파일을 생성하는 시간을 설정하려면 다음을 사용하십시오 SetCreationTime.

[System.IO.File]::SetCreationTime("C:\path\to\file.ext", (Get-Date "8/8/2088"))

다음을 사용하여 마지막 수정 시간을 설정하려면 SetLastWriteTime:

[System.IO.File]::SetLastWriteTime("C:\path\to\file.ext", (Get-Date "7/4/1776"))

Linux 에서이 우분투 요청 답변에 표시된 것처럼 -d플래그를 사용하여 파일의 마지막 수정 시간을 쉽게 변경할 수 있습니다 . Linux 파일 시스템에서 파일을 생성 한 날짜에 대한 개념은 실제로 없습니다 ( Unix & Linux에서 추가로 읽음 ).touch


3

예. Windows에서는 파일을 변경하고 저장하십시오. 이제 파일을 복사하십시오. 사본의 속성을 보면 수정 날짜가 더 이른 것을 볼 수 있습니다.


1

여기서 주목해야 할 가장 중요한 점은 파일 수정 시간이 실제로 특별하지 않다는 것입니다. 다른 데이터와 마찬가지로 저장됩니다. 데이터를 실제로 마지막으로 읽거나 읽은 시점을 알 수있는 방법이 없습니다 .

여기에서 CD와 같은 1 회 기록 매체를 제외하고는 마지막 수정 시간 또는 작성 시간을 저장하는 드라이브의 비트를 직접 수정하는 것이 항상 가능하다는 것을 알 수 있습니다.

보다 실제적으로 이것은 다른 답변에서 언급했듯이 일반적인 운영 체제 내에서도 가능합니다. Windows에서 이는 WinAPI SetFileTime기능에 의해 제공되며 utimeLinux에서 이를 수행 할 수 있습니다 . touch이러한 API를 기반으로 빌드 와 같은 도구

이러한 API에 대한 가장 일반적인 합법적 인 사용은 수정 시간을 유지하는 것입니다 (예 : 파일 복사, 아카이브에서 추출 등).


0

내 경험상 파일을 수정하는 데 하나 이상의 컴퓨터가 사용되고 그 중 하나에 잘못된 시스템 시간이있을 때입니다. 시스템 시간이 잘못되는 세 가지 가장 일반적인 원인은 특별한 순서가 아닙니다.

  1. 모든 컴퓨터가 일광 절약 시간으로 자동 변경되도록 구성되어있는 것은 아닙니다.
  2. 사람들은 컴퓨터에서 "실수로"시스템 시간을 변경했습니다.
  3. 사람들은 컴퓨터에서 시스템 시간을 "고의적으로"장난으로 변경했습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.