Linux에서 파일의 최종 수정 날짜 가져 오기


149

저는 Linux를 처음 사용합니다. 명령 줄을 사용하고 있습니다. 파일의 마지막 수정 날짜를 보려고합니다. Linux에서 명령 행을 어떻게 사용합니까?


25
ls -l
Daniel Beck


1
@DanielBeck은 ls -l수정 된 날짜 또는 작성 날짜입니까?
Bruno Bieri

1
@BrunoBieri 수정 날짜입니다. 참조하십시오 man ls. 일반적인 Linux 파일 시스템은 생성 날짜를 추적하지도 않습니다. 추적 된 날짜 종류에 대해서는 허용되는 답변을 참조하십시오.
다니엘 벡

답변:


133

@ edvinas.me에서 언급했듯이 stat마지막 수정 날짜를 포함하여 파일에 대한 다양한 정보를 알려줍니다.

처음에는 출력 목록 을 명확히하기 위해 Modify and Change 와 혼동했습니다 stat.

  • 액세스 는 마지막 데이터 액세스 시간 (예 : 읽기)을 보여줍니다.
  • 수정 은 마지막 데이터 수정 시간을 보여줍니다.
  • 변경 은 파일 상태가 마지막으로 변경된 시간을 나타냅니다.

예를 들면 다음과 같습니다.

~ $ touch foo
~ $ stat foo
File: ‘foo’
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 410397      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:06:11.343616258 +0200
Modify: 2015-09-21 12:06:11.343616258 +0200
Change: 2015-09-21 12:06:11.343616258 +0200
Birth: -

~ $ echo "Added bar to foo file" >> foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:09:31.302713093 +0200
Birth: -

~ $ chmod 444 foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0444/-r--r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:10:16.040310543 +0200
Birth: -

65

이를 stat위해 명령을 사용하십시오 .

$ stat file

27
사람이 읽을 수있는 마지막 수정 날짜 만 원한다면stat -c '%y' file
Adam Taylor

35

보다 유연한 다른 방법은을 사용하는 것 date -r입니다. 보낸 사람 man date:

-r, --reference=FILE
       display the last modification time of FILE

예를 들어 출력 형식을 지정할 수 있다는 장점이 있습니다.

$ date -r foo
Thu Aug 31 10:36:28 AEST 2017
$ date -r foo -R
Thu, 31 Aug 2017 10:36:28 +1000
$ date -r foo -u
Thu Aug 31 00:36:28 UTC 2017
$ date -r foo +%s
1504139788

3
예, 매우 도움이되었습니다. 감사합니다. 수정 된 시간이 접두어로 붙도록 파일 이름을 바꾸는 bash 함수는 다음과 같습니다. function mvfilestime () {if [x "$ {1}"= "x"]; 그런 다음 "mvfilestime : mv에 대한 파일 인수가 누락되었습니다"echo f = $ (date + "% Y- % m- % d- % H- % M"-r $ {1})-$ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi}
여행자

완벽하고, 정답이어야합니다
AB

15

ls -l 작업을 수행해야합니다.

예:

#> ls -l /home/TEST/
total 16

-rw-r--r--   1 rfmas1   nms          949 Nov 16 12:21 create_nd_lists.py

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 enb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nodes_ip.txt

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 rnc_list

2

파일이 다른 웹 서버에 있으면 httpie( docs )를 좋아 합니다.

설치

pip install httpie --user

용법

-h명령은 헤더 만 제공합니다. 패턴은

http -h [url] | grep 'Last-Modified\|Date'

예:

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

Date이 서버의 시간이 아닌 해당 지역의 시간을보고으로 중요하다. 또한 모든 서버가 보내는 Last-Modified것은 아닙니다 (예 : 수퍼 유저가하지 않는 것).


2

1) 최종 수정 날짜 / 시간이있는 파일 디렉토리 나열

파일을 나열하고 마지막으로 수정 된 파일을 맨 위에 표시하기 위해 command -lt와 함께 옵션을 사용 ls합니다.

$ ls -lt /run
output
total 24
-rw-rw-r--.  1 root utmp 2304 Sep  8 14:58 utmp
-rw-r--r--.  1 root root    4 Sep  8 12:41 dhclient-eth0.pid
drwxr-xr-x.  4 root root  100 Sep  8 03:31 lock
drwxr-xr-x.  3 root root   60 Sep  7 23:11 user
drwxr-xr-x.  7 root root  160 Aug 26 14:59 udev
drwxr-xr-x.  2 root root   60 Aug 21 13:18 tuned

https://linoxide.com/linux-how-to/how-sort-files-date-using-ls-command-linux/


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.