"ls -all"이 일부 파일의 시간을 표시하지만 다른 파일의 시간은 왜 표시합니까?


32

ls -all명령을 실행 하면 일부 파일이나 디렉토리에 연도가 있고 일부는 시간이 있습니까? 왜 일부는 연도를 보여주고 다른 사람들은 시간을 보입니까? 파일이 작성된 시간을 나타내는 시간입니까?

여기에 이미지 설명을 입력하십시오


15
사용하고 -all있습니다. 마지막 L은 불필요한 all단어입니다. 단어 "all"이 아니라 -a(모든 파일 표시) 및 -l(긴리스트 형식)을 나타냅니다. 모두 함께 사용 ls -al하는 것과 동일합니다.
— fedorqui

답변:


35

기본적으로 파일 타임 스탬프는 최근 타임 스탬프가 아닌 경우 'Mar 30 2002'와 같은 날짜와 최근 타임 스탬프의 경우 'Mar 30 23:45'와 같은 연도 및 시간이없는 날짜를 사용하여 약식 형식으로 나열됩니다. 이 형식은 아래에 설명 된대로 현재 로캘에 따라 변경 될 수 있습니다.

타임 스탬프는 6 개월 미만이고 최근 날짜가없는 경우 최근으로 간주됩니다. 오늘 날짜가 표시된 타임 스탬프가 최근 형식으로 표시되지 않으면 타임 스탬프가 미래에 있으므로 파일 시간 소인에 의존하는 프로그램을 중단시킬 수있는 클럭 스큐 문제가있을 수 있습니다.

출처 : http://www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps

설명하기 위해 :

$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7

4
미래의 시간도 시간이 아니라 연도를 나타냅니다. 클럭이 동기화되지 않은 호스트간에 파일을 교환하는 경우 발생할 수 있습니다.
— kasperd

24

표현 된 시간은 수정 시간입니다. ls -all와 ls -l -a(과) 다른 점에 유의하십시오 ls --all. l예제에서 double을 사용할 이유가 없습니다 . 각 파일의 수정 시간을 보려면을 사용할 수 있습니다 ls -al --full-time.


4
GNU ls에서 정상적으로 사용하는 --time-style=long-iso것이 더 유용 할 수 있습니다. --full-time일반적으로 필요하지 않은 소수점 뒤에 9 개의 암호 (!)를 포함하여 초를 표시합니다.
— pabouk

1
--full-time암시 -l, 당신은 그냥 사용할 수 있습니다 ls -a --full-time.
— kasperd

6

표시하려는 날짜 / 시간이 지난 6 개월 인 ls경우 날짜 및 시간을 표시합니다. 6 개월보다 길거나 미래에있을 경우 ls날짜와 연도를 표시합니다.

다른 답변에서 언급했듯이

  • ls -ll에 해당 ls -l하며
  • ls -all동등 ls -al등가 인 ls -a -l, ls -l -a, 및 ls -la.

으로 -l옵션 ls( "모든 것이 파일이다"때문에, 디렉토리 포함), 파일의 수정 날짜 / 시간을 표시 하지 않는 한

  • -c 이 경우에도 변경 시간이 표시되거나
  • -u 또한 지정된 경우 액세스 시간을 표시합니다.

자세한 내용은 ls (1) 를 참조하십시오.


3

이 출력은 최대 정보 내용에 맞게 조정됩니다. 시간이 현재 시간 (완전히 확실하지는 않지만 6 개월 내에 추측 할 때)과 "충분히 근접"한 경우 연도가 제거되고 대신 시간이 표시됩니다. 그렇지 않으면 연도가 표시됩니다. 시간이 몇 년 전인 경우, 정확한 시간을 수정하는 데 크게 신경 쓰지 않기 때문에 이것이 기본값입니다. GNU coreutils ls에는 --time-style이를 명시 적으로 제어 할 수 있는 옵션이 있습니다.


0

뭔가 깨달았 니? 10 월 20 일의 시간으로 표시됩니다. 즉, 파일을 마지막으로 수정 한 시간을 표시하지만 오늘이 아닌 다른 날에는 시간이없는 날짜 만 표시됩니다.

Thomas의 답변에 따르면 이것이 아닙니다. 방금 추론 방법을 사용하려고했지만 결국 올바른 결론을 얻지 못했습니다.


1
Aug 6 19:50 .config, Aug 6 19:48 VNCHOWTO.
— G-Man, 'Reinstate

완벽하게, 나는 방금 날짜를보고 요점을 연결하는 추론을 했으므로 항상 완벽한 결론은 아닙니다.
— Rafael Campos Nunes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.