ls를 사용하여 파일 타임스탬프를 변경하고 연도 대신 시간을 표시합니다.

ls를 사용하여 파일 타임스탬프를 변경하고 연도 대신 시간을 표시합니다.

파일 날짜를 내일 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

관련 정보