سؤال الحصول على آخر تعديل تاريخ الملف في لينكس


أنا جديد على Linux. أنا أستخدم سطر الأوامر. أحاول عرض تاريخ آخر تعديل للملف. كيف أفعل ذلك في لينكس من سطر الأوامر؟


107
2018-04-03 12:45


الأصل


ls -l يعمل أيضا ... - Daniel Beck♦
تكرار من superuser.com/questions/612099/... - Oldskool
DanielBeck هو تاريخ ls -l التاريخ المعدل أو تاريخ الإنشاء؟ - Bruno Bieri
BrunoBieri إنه تاريخ التعديل. نرى man ls. لا تتبع أنظمة ملفات Linux المعتادة حتى تاريخ الإنشاء - راجع الإجابة المقبولة لأنواع التواريخ التي تم تتبعها. - Daniel Beck♦


الأجوبة:


كما ذكر من قبل @ edvinas.me ، stat يخبرك معلومات مختلفة حول الملف بما في ذلك تاريخ التعديل الأخير.

في البداية ، كنت مرتبكة مع تعديل و يتغيرون، فقط للتوضيح، 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: -

90
2017-09-21 10:22





استعمال stat الأمر لذلك:

$ stat file

56
2018-04-03 12:47



إذا كنت تريد فقط تاريخ التعديل الأخير (في نموذج قابل للقراءة) ، استخدم stat -c '%y' file - Adam Taylor


طريقة أخرى أكثر مرونة تستخدم 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

16
2017-08-31 01:04



نعم ، مفيد جدا ، شكرا. هنا دالة bash تقوم بإعادة تسمية الملف ليصبح مسبوقًا بالوقت المعدل: function mvfilestime () {if [x "$ {1}" = "x"]؛ ثم صدى "mvfilestime: Missing argument of file to mv" else f = $ (date + "٪ Y-٪ m-٪ d-٪ H-٪ M" -r $ {1}) - $ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi} - Traveler


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

14
2017-11-16 05:43





إذا كان الملف موجودًا على خادم ويب آخر ، فأنا أرغب في ذلك httpie (مستندات).

التركيب

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
2018-01-06 10:08