Lion에서 파일 작성 날짜를 변경하는 방법을 알려주십시오. touch-t 명령이 있지만 Lion에서는 작동하지 않습니다. 몇 사람이 다른 방법을 언급했지만, 그들이 평신도 언어가 아닌 "코더"언어로 솔루션을 작성했다고 생각합니다.
도와 주셔서 감사합니다.
Lion에서 파일 작성 날짜를 변경하는 방법을 알려주십시오. touch-t 명령이 있지만 Lion에서는 작동하지 않습니다. 몇 사람이 다른 방법을 언급했지만, 그들이 평신도 언어가 아닌 "코더"언어로 솔루션을 작성했다고 생각합니다.
도와 주셔서 감사합니다.
답변:
touch -t
일반적으로 수정 및 액세스 시간 만 변경합니다. 대상 시간이 원래 작성 시간 이전 인 경우에만 작성 시간을 변경합니다.
touch -t 199912312359 file.txt
touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt
SetFile -d
항상 생성 시간을 변경합니다.
SetFile -d '12/31/1999 23:59:59' file.txt
SetFile -d "$(GetFileInfo -m test.txt)" file.txt
SetFile은 developer.apple.com/downloads 또는 Xcode의 환경 설정에서 다운로드 할 수있는 명령 행 도구 패키지의 일부입니다 .
+%Y%m%d%H%M.%S
(분과 초 사이의 점에 주목) 을 사용해야했습니다.
Mac OS X에는 파일과 관련된 4 가지 타임 스탬프가있는 것으로 보입니다. 이 타임 스탬프는 항상 서로 독립적으로 업데이트되지 않습니다, 그러나 사람은 치료의 비트와 함께 및 사용과 일부 개별 제어 할 수 있습니다 touch
, SetFile
및 chown
(또는 chmod
). 이를 확인하려면 명령 프롬프트에서 새 파일을 실험하고 작성해 보겠습니다 #
.
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
나열된 첫 번째 날짜는 마지막 액세스 시간 ( atime
), 두 번째는 마지막 수정 시간 ( mtime
), 세 번째는 마지막 상태 변경 ( ctime
), 네 번째는 파일 작성 시간 (출생 시간)입니다 ( Btime
참조) man lstat
.
액세스 시간 ( atime
)을 지정된 시간으로 수정하려면 다음을 사용하십시오.
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
수정 시간 ( mtime
) 및 파일 작성 시간 ( Btime
)을 지정된 시간으로 수정하려면 다음을 사용하십시오.
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
분명히 이것은 또한 마지막 상태 변경 시간 ( ctime
)을 현재 시스템 시간 으로 자동 업데이트합니다 !
생성 / 출생 시간 ( Btime
) 만 주어진 시간으로 수정하려면 위의 다른 사람이 제안한대로 사용하십시오.
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
마지막 상태 변경 시간 ( ctime
) 만 현재 시스템 시간으로 수정하려면 다음과 같이 사용하십시오.
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
where username
는 파일의 소유자입니다 ( stat
또는 로보고 ls -l
). 이것은 파일의 소유권을 변경하지 않지만 파일의 inode에 액세스하여 마지막 상태 변경 시간으로 기록합니다. 불행히도 컴퓨터의 시간을 변경하는 것 이외의 시간을 명시 적으로 지정할 수는 없습니다 ...
요약하면, 4 개의 타임 스탬프를 독립적으로 변경할 수 있도록 다음을 사용할 수 있습니다 (마지막 3 개의 순서로).
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[일반 시스템 날짜로 되돌리기](물론 시스템 날짜를 재설정해도 위험이없는 작업이 아닐 수 있습니다. 경고가 표시되었습니다.)
명령 줄 touch
명령은 Lion에서 작동하지만 사용 방법에 대한 약간의 배경 지식이 필요합니다.
먼저, 입력해야합니다. 이것은 창에서 그래픽으로 작동하는 유틸리티가 아닙니다. 입력 한 장소는 터미널 이라는 앱 입니다. 유틸리티 폴더에서 이것을 찾거나 Spotlight 검색을 사용하여 찾을 수 있습니다.
시작하면 명령을 입력 할 수있는 명령 행 창이 나타납니다. 타이핑한다고해서 코딩과 관련이있는 것은 아니지만 "구식"OS 명령을 처음 접하는 사람에게는 조금 위협적인 것처럼 보일 수 있습니다.
따라서 명령을 touch 라고 하며 명령 뒤에는 파일 이름 만 필요한 다양한 매개 변수를 전달할 수 있습니다. 다음을 입력하면 파일의 마지막 수정 날짜가 현재 시간으로 설정됩니다.
touch filename
물론 파일을 먼저 찾아야 할 수도 있습니다. 파일을 가져 오려면 추가 명령이 필요할 수 있습니다. CD 또는 디렉터리 변경 명령은 여기에 있습니다 :
cd ~/Desktop/files/PDFs
touch filename
또는 명령의 일부로 파일의 전체 경로를 간단히 추가 할 수 있습니다.
touch ~/Desktop/files/PDFs/filename
touch 명령의 고급 사용법을 사용하면 실행 시간을 사용하지 않고 수정 시간 대신 액세스를 설정하는 대신 설정하려는 시간을 지정할 수 있습니다. 이는 -t 및 기타와 같은 매개 변수 입니다. 일부는 시간을 다른 파일의 시간으로 설정하고 일부는 X 양만큼 시간을 앞뒤로 이동하도록 설정합니다 ( 자세한 내용 은 여기 참조).
touch -d '1 May 2005 10:22' file8
다음은 이 페이지에서 가져온 참고 자료이며 명령 줄의 파일 위치가 불편한 사용자를위한 유용한 정보를 제공하는 훌륭한 예입니다.
입력 한 날짜 이후에 파일이 작성된 경우에만 수정 한 날짜와 작성된 날짜 속성이 모두 변경됩니다. 파일을 작성하기 전에 수정할 수 없기 때문입니다. 설정 한 날짜 이전에 생성 된 경우 수정 된 날짜 만 변경됩니다.
파일의 날짜 생성 속성을 변경하는 방법은 무엇입니까?
터미널 응용 프로그램 (
/Applications/Utilities/Terminal.app
)을 열거 나 iTerm을 사용하려는 경우.다음과 같은 형식으로 날짜를 입력하여 터미널에 입력하십시오 (Enter / Return 키를 누르지 않음)
YYYYMMDDhhmm
.touch -t 201212211111
Finder 윈도우를 열고 수정하려는 파일을 찾아 터미널 윈도우에 끌어다 놓으면 명령 줄 용어를 사용하여 파일 위치를 삽입합니다. 이 시점에서 터미널에 입력해야 할 내용의 예는 다음과 같습니다.
touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg
위 예에서 201212211111은“2012 년 12 월 21 일 오전 11시 11 분을 나타냅니다.
touch
파일 작성 날짜가 아니라 수정 날짜를 수정합니다.
touch
위에서 지정한 매개 변수를 사용하면 테스트 파일의 생성 날짜가 아닌 수정 날짜가 변경되었습니다.
touch
않습니다 인수에 따라 작성 날짜를 수정합니다. 파일 작성 날짜 이전의 수정 날짜를 제공하면 파일을 작성하기 전에 파일을 수정할 수 없으므로 작성 날짜가 새 수정 날짜 값으로 자동 변경됩니다.
creation
. 나는 변화 할 수 있었다 access
그리고 modified
는 "과거의 일"로 날짜 있지만, 생성 날짜를 수정하지 않았다. 매뉴얼 페이지를 확인하십시오. 작성 날짜는 언급되지 않았습니다. 파일 시스템 : Mac OS 확장 (저널링, 암호화). 사용 SetFile -d "$(GetFileInfo -m test.txt)" file.txt
은 완벽하게 작동했습니다.
여기에 위대한 힌트, 특히 마지막 힌트가 있습니다 (Lauri Ranta의 8 월 21 일 15:21에 대답). 완벽 해!
이제 간단한 Automator Workflow를 사용하여 여러 파일을 일괄 변경합니다.
쉘 스크립트는 다음과 같습니다.
for f in "$@"
do
SetFile -d "$(GetFileInfo -m "$f")" "$f"
done
이것은 매력처럼 작동합니다.