Получить последнюю измененную дату файла в Linux
Я новичок в Linux. Я использую командную строку. Пытаюсь просмотреть последнюю измененную дату файла. Как это сделать в Linux из командной строки?
Я новичок в Linux. Я использую командную строку. Пытаюсь просмотреть последнюю измененную дату файла. Как это сделать в Linux из командной строки?
Как уже упоминалось @edvinas.me, stat
сообщает вам различную информацию о файле, включая дату последнего изменения.
Сначала я перепутал с Modify и 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: -
Другим более гибким способом является использование 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
```.
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
Строительство из_ @Adam Taylor ‘s комментарий в @phoops ’s ответ и @Sparhawk ’s ответ.
Чтобы конкретно просто получить дату (используя октябрь 3, 2019 для примера, потому что это был мой последний день рождения, вот мое Venmo, если вы чувствуете, привело к благословению меня финансово: @levi_uzodike)
stat -c %y file | cut -d' ' -f1
даст вам 2019-10-03
date +%F -r file
даст вам 2019-10-03
date +%D -r file
даст вам 10/03/19
date +%x -r file
даст вам 10/03/2019
, или 10/03/19
, если вы находитесь в США и 03/10/2019
, или 03/10/19
, если вы находитесь в Великобритании, чтобы назвать пару примеров (конечно, есть еще возможности) Эти date
опции формата, насколько я понимаю, являются комбинациями других опций формата. Вот некоторые пояснения из man page :
сокращенное название месяца %b locale (например, Jan) название полного месяца %B locale (например, Jan) название полного месяца %B locale (например, Январь) … %d день месяца (например, 01) %D дата; %m/%d/%y %e день месяца, с пробелами; %_d %F полная дата; %Y-%m-%d … %m месяц (01..12) … %x представление даты в локали (например, январь) %x представление даты в локали (например, январь) … %x представление даты в локали (например, январь) … %b представление даты в локали (например, январь) … %b представление даты в локали (например, январь) … .., 12/31/99) … %y последние две цифры года (00…99) %Y год … … По умолчанию в блокнотах с датами числовые поля с нулями.
Следующие опциональные флаги могут следовать `%’:
- (hyphen) do not pad the field
_ (underscore) pad with spaces
0 (zero) pad with zeros
^ use upper case if possible
# use opposite case if possible
N.B.: These flags don’t work on the “combo formats” like %F
, %D
and %x
. They are for the “singular field formats”.
Apparently this last flag ( # ) does not work as I’d expect (e.g., if date +%b
gives Oct
, date +%#b
gives OCT
as opposed to oCT
) I guess this would be useless, but I’d think a lower case option would be more useful. date +%#p
does turn date +%p
which might give PM
or AM
into pm
or am
, respectively. So I guess it’s not a ‘per-character’ case switch but sets the case of all the characters in the string to the opposite case of the majority of the characters? Also date +%P
gives pm
or am
, but neither date +%^P
nor date +%#P
change its output. My guess for this case is that %P
is just an alias for date +%#P
, and it seems that whenever you add more than one flag, the behavior is undefined/unpredictable ( e.g., %#p
gives the same as date +%0- e
: date +%-e
and 3
gives the same as date +%-0e
: date +%0e
, which makes you think that only the flag next to the letter works or that it goes left to right, but both 03
and date +%#p
give date +%^p
or date +%^#p
, [depending on the time of course] ) unless there’s some hidden order of operations? Sorry for digressing…
Also, if you run the command pm
, you can see the combo for the specific locale of your system (e.g., am
).
And you can make your own combo. For example,
locale -k LC_TIME | grep ^d_fmt
will give you d_fmt="%m/%d/%Y"&007date +%^b\ %-e\ %Y -r file&007OCT 3 2019
.Если файл находится на другом веб-сервере, мне нравится httpie
docs ).
pip install httpie --user
Команда -h
дает только заголовок. Пример:
http -h [url] | grep 'Last-Modified\|Date'
Пример:
Date
важна, так как она сообщает серверное время, а не ваше локальное время. Кроме того, не каждый сервер посылает Last-Modified
(например, суперпользователь, кажется, не делает этого).
1) Список файлов в каталоге с последними измененными датами/временем
Для списка файлов и отображения последних измененных файлов сверху, мы будем использовать
-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/