- Get Last Modified Date of File in Linux
- 7 Answers 7
- use opposite case if possible
- 🐧 Как узнать время и дату изменения файла в системах Linux
- Получение даты последнего изменения файла в Linux с помощью команды date
- Получение даты последнего изменения файла в Linux с помощью команды ls
- Получение даты последнего изменения файла в Linux с помощью команды stat
- Получение даты последнего изменения файла в Linux с помощью команды midnight commander
- Заключение
- You may also like
- 📜 Чтение файла построчно на Bash
- 📧 В чем разница между IMAP и POP3
- ✔️ Как управлять контейнерами LXD от имени обычного.
- 📜 Руководство для начинающих по созданию первого пакета.
- Феноменальная популярность электроники Xiaomi: основные причины
- 📜 Получение вчерашней даты в Bash: Практическое руководство
- Использование специальных гелей при мышечных болях
- 📦 Как расширить/увеличить файловую систему VxFS на Linux
- Услуги по размещению серверного оборудования в ЦОД
- Для чего выполняется ИТ консалтинг на предприятиях?
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
Get Last Modified Date of File in Linux
I’m new to Linux. I’m using the command-line. I’m trying to view the last modified date of a file. How do I do that in Linux from the Command Line?
@BrunoBieri It’s the modification date. See man ls . Typical Linux file systems don’t even track creation date — see the accepted answer for the kinds of dates kept track of.
7 Answers 7
As mentioned by @edvinas.me, stat tells you various information about the file including the last modified date.
At first, I was confused with Modify and Change, just to clarify, stat output lists:
- Access shows the time of last data access (e.g. read).
- Modify shows the time of last data modification.
- Change shows the time the file status last changed.
~ $ 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: -
Use stat command for that:
Another way that is more flexible is using date -r . From man date :
-r, --reference=FILE display the last modification time of FILE
This has the advantage of allowing you to specify the output format, e.g.
$ 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
Yes, very helpful, thanks. Here is a bash function that will rename a file to be prefixed by the modified time: function mvfilestime() < if [ x"$<1>» = «x» ] ; then echo «mvfilestime: Missing argument of file to mv» else f=$(date +»%Y-%m-%d-%H-%M» -r $<1>)-$ <1>echo mv $ <1>$ mv $ <1>$ fi >1>
#> 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
Building off of @Adam Taylor ‘s comment in @phoops ‘s answer and @Sparhawk ‘s answer.
To specifically just get the date (using October 3, 2019 for examples because it was my last birthday)
- stat -c %y file | cut -d’ ‘ -f1 will give you 2019-10-03
- date +%F -r file will also give you 2019-10-03
- date +%D -r file will give you 10/03/19
- date +%x -r file will probably give either 10/03/2019 , or 10/03/19 if you’re in the U.S. and either 03/10/2019 , or 03/10/19 if you’re in the U.K., just to name a couple examples (of course there are more possibilities)
These date format options are, to my understanding, combinations of other format options. Here are some explanations from the man page:
%b locale’s abbreviated month name (e.g., Jan)
%B locale’s full month name (e.g., January)
.
%d day of month (e.g, 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; same as %Y-%m-%d
.
%m month (01..12)
.
%x locale’s date representation (e.g., 12/31/99)
.
%y last two digits of year (00..99)
%Y year
.
By default, date pads numeric fields with zeroes.
The following optional flags may follow `%’:
— (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 %#p , and it seems that whenever you add more than one flag, the behavior is undefined/unpredictable ( e.g., date +%0-e gives the same as date +%-e : 3 and date +%-0e gives the same as date +%0e : 03 , which makes you think that only the flag next to the letter works or that it goes left to right, but both date +%#^p and date +%^#p give pm or am , [depending on the time of course] ) unless there’s some hidden order of operations? Sorry for digressing.
Also, if you run the command locale -k LC_TIME | grep ^d_fmt , you can see the combo for the specific locale of your system (e.g., d_fmt=»%m/%d/%Y» ).
And you can make your own combo. For example,
🐧 Как узнать время и дату изменения файла в системах Linux
В этом туториале показаны 4 простых способа получения даты последнего изменения файла в Linux.
Прочитав это руководство, вы будете знать, как проверить дату последней модификации файла с помощью команд ls, date и stat и бонус метод с MC.
Получение даты последнего изменения файла в Linux с помощью команды date
Первый способ узнать дату последней модификации файла в Linux, описанный в этой статье, основан на команде date.
Когда за командой date следует флаг -r, она показывает нам дату последней модификации файла.
Следующий пример показывает синтаксис для использования команды date, где itisgood – файл, дату последней модификации которого я хочу вывести.
Как вы можете видеть, вывод очень удобен для пользователя и включает дату и время последней модификации файла.
Для получения дополнительной информации о команде date посетите сайт https://man7.org/linux/man-pages/man1/date.1.html.
Получение даты последнего изменения файла в Linux с помощью команды ls
Второй метод, описанный в этом руководстве, объясняет, как получить дату последнего изменения файла с помощью команды ls.
Сначала используем команду ls с флагом -l, как показано на скриншоте ниже.
Флаг -l указывает команде ls вывести список файлов в длинном формате.
Список в длинном формате включает дату последней модификации файла.
Как вы можете видеть, в первом столбце показаны права, во втором и третьем – пользователи и группы файлов.
Четвертый столбец – размер.
Затем вы можете увидеть месяц, день и время, когда файл был изменен.
В отличие от предыдущего метода с ls, вы получите список всех файлов в каталоге, включая даты их модификации.
Для упорядоченного вывода вы можете добавить флаг -t.
Флаг -t выведет упорядоченный по дате модификации вывод, показывая сначала последние измененные файлы.
как вы видите, последние измененные файлы теперь отображаются первыми.
Команда ls также позволяет проверить дату последней модификации файла по отдельности; для этого просто укажите имя файла, как показано ниже.
Получение даты последнего изменения файла в Linux с помощью команды stat
Третий метод получения даты последней модификации файла в Linux, описанный в этой статье, показывает, как использовать команду stat для достижения этого результата.
Синтаксис довольно прост; просто запустите команду stat, за которой следует имя файла, дату последнего изменения которого вы хотите узнать, как показано в примере ниже.
Как вы можете видеть, вывод показывает больше информации, чем предыдущие команды.
Важно различать даты модификации и изменения.
Строка с именем Modify показывает последний раз, когда файл был изменен.
Строка с именем Change показывает последний раз, когда статус файла изменился; статус включает изменение прав, изменение владельца и т.д.
Вы можете выполнить приведенную ниже команду, чтобы получить в выводе только время модификации, опуская остальную информацию.
Получение даты последнего изменения файла в Linux с помощью команды midnight commander
Вы также можете запустить mc в каталоге, где лежит нужный нам файл и посмотреть дату изменения:
Заключение
Это руководство показывает, что получить дату последнего изменения файла в Linux можно с помощью различных простых методов.
Ни один из описанных методов не имеет особых преимуществ; все они могут быть реализованы легко и без установки дополнительных пакетов.
Для этого руководства я использовал Debian, но все описанные здесь команды доступны во всех дистрибутивах Linux.
Все описанные команды имеют дополнительные возможности, о которых вы можете узнать, прочитав man-страницы, указанные в конце каждого раздела.
itisgood
🐧 Перенаправление Bash объяснение с примерами
🛠️ Как устранить ошибку Initramfs в Fedora
You may also like
📜 Чтение файла построчно на Bash
📧 В чем разница между IMAP и POP3
✔️ Как управлять контейнерами LXD от имени обычного.
📜 Руководство для начинающих по созданию первого пакета.
Феноменальная популярность электроники Xiaomi: основные причины
📜 Получение вчерашней даты в Bash: Практическое руководство
Использование специальных гелей при мышечных болях
📦 Как расширить/увеличить файловую систему VxFS на Linux
Услуги по размещению серверного оборудования в ЦОД
Для чего выполняется ИТ консалтинг на предприятиях?
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…