파일 날짜를 내일 21시로 변경하고 싶습니다. 터치를 사용하는데, 입력을 하면 ls -l
시 대신 파일의 연도가 표시됩니다.
-rw-r--r-- 1 ABCD DEF 0 sept. 30 2014 test01
-r-xr-xr-x 1 ABCD DEF 15 sept. 29 09:26 test02
예를 들어 "2014"는 명확하게 표시되지만 "21:00"은 표시되지 않습니다. 이상한 점은 실행하면 touch --date "1 hour ago" test01
올바르게 표시되지만 touch --date "+1 hour" test01
작동하지 않는다는 것입니다. 또한 emacs를 사용하여 파일을 편집하고 저장하면 연도 대신 시간이 표시됩니다.
이게 정상인가요? ls의 매개변수를 사용하거나 컴퓨터 구성을 변경하지 않고 이 동작을 어떻게 변경할 수 있습니까? (도전을 위한 것입니다)
답변1
ls
시간 표시 형식에는 두 가지가 있습니다.
- 지난 6개월 동안의 타임스탬프: 월, 일, 시, 분.
- 기타 타임스탬프(미래 또는 6개월 이상)의 경우: 연, 월, 일.
목표는 수평 공간을 확보하고 정보로 사용자를 압도하지 않는 것입니다. "올해 시작"을 표시하는 것은 현재 연도를 표시하고 사용자에게 이것이 실제로 현재 연도임을 알리는 것보다 더 분명합니다. 매우 오래된 파일의 경우 정확한 시간은 중요하지 않습니다. 미래의 날짜는 드뭅니다.
GNU 언어--full-time
해당 시간에 관계없이 전체 파일 시간(연도, 월, 일, 시, 분, 초, 나노초, 시간대 오프셋)을 표시하는 옵션이 있습니다 . 옵션을 사용하여 출력 형식을 조정할 수 있습니다 --time-style
.
답변2
문제가 해결되었습니다. 문제는 날짜가 미래인 경우 시간 대신 연도가 표시된다는 것입니다.
다음은 간단한 예 입니다 touch file
.l
-rw-r--r-- 1 ABCD DEF 0 sept. 29 12:01 file
이것은 정상입니다. 날짜를 15초 이후로 변경하려고 하지 마세요. touch --date "+15 seconds" file
즉시ls -l
-rw-r--r-- 1 ABCD DEF 0 sept. 29 2014 file
15초 후에도 ls -l
마찬가지
-rw-r--r-- 1 rius_b users 0 sept. 29 12:03 file