"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 -allls -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.