Получить последнюю измененную дату файла в 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 +%#pdoes 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 tunedhttps://linoxide.com/linux-how-to/how-sort-files-date-using-ls-command-linux/