كيفية العثور على الملفات وفرزها بناءً على تاريخ ووقت التعديل في Linux

عادةً ما نعتاد حفظ الكثير من المعلومات على شكل ملفات في نظامنا. بعضها ملفات مخفية، وبعضها محفوظ في مجلد منفصل أنشأناه لسهولة فهمنا، في حين يبقى البعض كما هو. لكن، كل هذا يملأ دلائلنا؛ عادةً سطح المكتب، مما يجعله يبدو فوضويًا. ولكن، تنشأ المشكلة عندما نحتاج إلى البحث عن ملف معين تم تعديله في تاريخ ووقت معين في هذه المجموعة الضخمة.

Find and Sort Files by Date and Time in Linux

يمكن للأشخاص المرتاحين مع واجهات المستخدم الرسومية العثور عليها باستخدام مدير الملفات، الذي يقوم بسرد الملفات في تنسيق القائمة الطويلة، مما يجعل من السهل معرفة ما نريد، ولكن تلك المستخدمين الذين يتعودون على الشاشات السوداء، أو حتى أي شخص يعمل على الخوادم التي تخلو من واجهات المستخدم الرسومية سيودون أمرًا بسيطًا أو مجموعة من الأوامر التي يمكن أن تسهل عملية البحث عنهم.

يظهر الجمال الحقيقي لنظام Linux هنا، حيث تحتوي Linux على مجموعة من الأوامر التي إذا استخدمت بشكل منفصل أو معًا يمكن أن تساعد في البحث عن ملف، أو تصنيف مجموعة من الملفات وفقًا لاسمها، تاريخ التعديل، ووقت الإنشاء، أو حتى أي تصفية يمكنك التفكير في تطبيقها للحصول على نتيجتك.

هنا، سنكشف القوة الحقيقية لنظام Linux من خلال فحص مجموعة من الأوامر التي يمكن أن تساعد في تصنيف ملف أو حتى قائمة من الملفات حسب التاريخ والوقت.

أدوات Linux لتصنيف الملفات في Linux

بعض الأدوات الأساسية لسطر الأوامر في Linux التي تكفي لتصنيف دليل بناءً على التاريخ و الوقت هي:

أمر ls

ls – توثيق محتويات الدراسة، يمكن لهذه الوظيفة إدراج الملفات والدولاكومات ويمكن حتى توثيق جميع معلومات الحالة الخاصة بهم بما في ذلك: تاريخ ووقت تعديلهم أو الوصول، الصلاحيات، الحجم، المالك، المجموعة وما إلى ذلك.

لقد تم تغطية مواضيع عديدة حول أمر ls في لينكس sort، يمكنك إيجادها أسفل:

  1. تعلم ls أمرًا مع 15 مثالًا بسيطًا
  2. تعلم 7 أمرًا تقدميًا ل ls مع مثالًا
  3. 15 أسئلة مفاهيم جيدة عن ls في لينكس

أمر sort

sort – يمكن استخدام هذا الأمر لترتيب خاتم البحث من أي حقل أو أي قسم معين من الحقل.

لقد تم تغطية مواضيع عديدة حول أمر sort في لينكس، يمكنك إيجادها أسفل:

  1. 14 مثالًا لأمر ‘sort’ في لينكس ‘Part 1’
  2. 7 مثالًا لأمر ‘sort’ في لينكس ‘Part 2’

تلك الأوامر قوية بحد ذاتها للمهارة إذا كنت تعمل على الشرائح السوداء وعليك تعامل مع العديد من الملفات فقط لتحصل على الملف الذي تريده.

بعض الطرق لتنظيم الملفات بواسطة التاريخ والوقت

أدناه قائمة بالأوامر التي يمكن تنظيمها وفقاً للتاريخ والوقت.

1. قائمة الملفات وفقاً للوقت الأخير للتغيير

الأوامر أدناه تقدم الملفات بالتوصيف الطويل، وتنظم الملفات وفقاً للوقت الأخير للتغيير، أحدث الملفات أولاً. لتنظيم بالترتيب العكسي، قم باستخدام قنبلة '-r' مع هذه الأوامر.

# ls -lt

total 673768
-rwxr----- 1 tecmint tecmint  3312130 Jan 19 15:24 When You Are Gone.MP3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3
-rwxr----- 1 tecmint tecmint  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3
-rwxr----- 1 tecmint tecmint  6629090 Jan 19 15:24 Westlife_Tonight.MP3
-rwxr----- 1 tecmint tecmint  3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3
-rwxr----- 1 tecmint tecmint  8580934 Jan 19 15:24 This Love.mp3
-rwxr----- 1 tecmint tecmint  2194832 Jan 19 15:24 The Cross Of Changes.mp3
-rwxr----- 1 tecmint tecmint  5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3
-rwxr----- 1 tecmint tecmint  3437100 Jan 19 15:24 Summer Of '69.MP3
-rwxr----- 1 tecmint tecmint  4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3
-rwxr----- 1 tecmint tecmint  4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3
-rwxr----- 1 tecmint tecmint  4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3
-rwxr----- 1 tecmint tecmint  4189654 Jan 19 15:24 Sarah Brightman  & Enigma - Eden (remix).mp3
-rwxr----- 1 tecmint tecmint  4124421 Jan 19 15:24 Sade - Smooth Operator.mp3
-rwxr----- 1 tecmint tecmint  4771840 Jan 19 15:24 Sade - And I Miss You.mp3
-rwxr----- 1 tecmint tecmint  3749477 Jan 19 15:24 Run To You.MP3
-rwxr----- 1 tecmint tecmint  7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3
-rwxr----- 1 tecmint tecmint  3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3
-rwxr----- 1 tecmint tecmint  5688390 Jan 19 15:24 Please Forgive Me.MP3
-rwxr----- 1 tecmint tecmint  3381827 Jan 19 15:24 Obvious.mp3
-rwxr----- 1 tecmint tecmint  5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3
-rwxr----- 1 tecmint tecmint  3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m

2. قائمة الملفات وفقاً للوقت الأخير للمراسلة

قائمة الملفات في المجلد وفقاً للوقت الأخير للمراسلة، أي وقت تم آخر مراسلة الملف، وليس تعديله.

# ls -ltu

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Linux-ISO
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Music-Player
drwx------  3 tecmint tecmint       4096 Jan 19 15:22 tor-browser_en-US
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 bin
drwxr-xr-x 11 tecmint tecmint       4096 Jan 19 15:22 Android Games
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Songs
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 renamefiles
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 katoolin-master
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 Tricks
drwxr-xr-x  3 tecmint tecmint       4096 Jan 19 15:22 Linux-Tricks
drwxr-xr-x  6 tecmint tecmint       4096 Jan 19 15:22 tuptime
drwxr-xr-x  4 tecmint tecmint       4096 Jan 19 15:22 xdm
drwxr-xr-x  2 tecmint tecmint      20480 Jan 19 15:22 ffmpeg usage
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:22 xdm-helper

3. قائمة الملفات وفقاً لأخر وقت تعديلهم

قائمة الملفات في المجلد وفقاً لأخر وقت تعديل معلومات الملف الحالية، أو 'ctime'. سيقوم هذا الأمر بتقديم هذا الملف أولاً إذا تم تعديل أي معلومات حالية مثل: صاحب، مجموعة، صلاحيات، حجم وما إلى ذلك.

# ls -ltc

total 3084272
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 15:24 Music
drwxr-xr-x  2 tecmint tecmint       4096 Jan 19 13:05 img
-rw-------  1 tecmint tecmint     262191 Jan 19 12:15 tecmint.jpeg
drwxr-xr-x  5 tecmint tecmint       4096 Jan 19 10:57 Desktop
drwxr-xr-x  7 tecmint tecmint      12288 Jan 18 16:00 Downloads
drwxr-xr-x 13 tecmint tecmint       4096 Jan 18 15:36 VirtualBox VMs
-rwxr-xr-x  1 tecmint tecmint        691 Jan 13 14:57 special.sh
-rw-r--r--  1 tecmint tecmint     654325 Jan  4 16:55 powertop-2.7.tar.gz.save
-rw-r--r--  1 tecmint tecmint     654329 Jan  4 11:17 filename.tar.gz
drwxr-xr-x  3 tecmint tecmint       4096 Jan  4 11:04 powertop-2.7
-rw-r--r--  1 tecmint tecmint     447795 Dec 31 14:22 Happy-New-Year-2016.jpg
-rw-r--r--  1 tecmint tecmint         12 Dec 18 18:46 ravi
-rw-r--r--  1 tecmint tecmint       1823 Dec 16 12:45 setuid.txt
...

إذا استخدمت قنبلة '-a' مع هذه الأوامر، يمكنك تقديم وتنظيم الملفات مخفية في المجلد الحالي وقنبلة '-r' تقدم الناتج بالترتيب العكسي.

للتنظيم العميق الأخر ، مثل تنظيم خارجناتج

الأوامر أدناه توضح استخدام sort مع أمر find لفرز قائمة الملفات استنادًا إلى التاريخ و الوقت.

لمعرفة المزيد حول أمر البحث، تابع هذا الرابط: 35 Practical Examples of ‘find’ Command in Linux

4. فرز الملفات استنادًا إلى الشهر

هنا، نستخدم أمر find للعثور على جميع الملفات في دليل الجذر (‘/’) ثم نقوم بطباعة النتيجة على النحو التالي: الشهر الذي تم الوصول إليه الملف ثم اسم الملف. من هذه النتيجة الكاملة، هنا نقوم بسرد أعلى 11 إدخالًا.

# find / -type f -printf "\n%Ab %p" | head -n 11

Dec /usr/lib/nvidia/pre-install
Dec /usr/lib/libcpufreq.so.0.0.0
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libcdr-0.0.so.0.0.15
Dec /usr/lib/msttcorefonts/update-ms-fonts
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn

الأمر أدناه يقوم بفرز النتيجة باستخدام المفتاح كحقل أول، كما هو محدد بواسطة '-k1' ثم يقوم بالفرز حسب الشهر كما هو محدد بواسطة 'M' قبل ذلك.

# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M

Apr /usr/lib/libcdr-0.0.so.0.0.15
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn
Dec /usr/lib/libcpufreq.so.0.0.0
Dec /usr/lib/msttcorefonts/update-ms-fonts
Dec /usr/lib/nvidia/pre-install

5. ترتيب الملفات بناءً على التاريخ

هنا، نستخدم مرة أخرى أمر find للعثور على جميع الملفات في دليل الجذر، ولكن الآن سنقوم بطباعة النتيجة على النحو التالي: تاريخ آخر تم الوصول إليه الملف، وقت آخر تم الوصول إليه الملف ثم اسم الملف. من ذلك نأخذ أعلى 11 إدخالًا.

# find / -type f -printf "\n%AD %AT %p" | head -n 11

12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

يقوم الأمر للفرز أولاً بناءً على آخر رقم في السنة، ثم يرتب بناءً على آخر رقم في الشهر بترتيب عكسي ثم يرتب بناءً على الحقل الأول. هنا، ‘1.8‘ يعني العمود 8 من الحقل الأول و ‘n’ يعني ترتيب عددي، بينما ‘r’ يشير إلى ترتيب بترتيب عكسي.

# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1

12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0

6. ترتيب الملفات بناءً على الوقت

هنا مرة أخرى نستخدم أوامر البحث find للتسجيل التي تظهر 11 أعلى ملفاً في المجلد الجوهري ونطبع النتائج بالتسلسل: آخر مرة تم فتح الملف ومن ثم اسم الملف.

# find / -type f -printf "\n%AT %p" | head -n 11

11:30:38.0000000000 /usr/lib/nvidia/pre-install
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

الأوامر التالية تنظم الناتج بناء على الجانب الأول من الحقل الأول في الناتج الذي هو الرقم الأول للساعة.

# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n

06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11:30:38.0000000000 /usr/lib/nvidia/pre-install
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

7. تنظيم معلومات التسجيل الخاصة بـ ls -l وفقاً للتاريخ

هذه الأوامر تنظم معلومات أوامر 'ls -l' وفقاً للحقل السادس وهو بالشهر، ومن ثم بناء على الحقل السابع وهو تاريخ وهو تسلسل أرقامي.

# ls -l | sort -k6M -k7n

total 116
-rw-r--r-- 1 root root     0 Oct  1 19:51 backup.tgz
drwxr-xr-x 2 root root  4096 Oct  7 15:27 Desktop
-rw-r--r-- 1 root root 15853 Oct  7 15:19 powertop_report.csv
-rw-r--r-- 1 root root 79112 Oct  7 15:25 powertop.html
-rw-r--r-- 1 root root     0 Oct 16 15:26 file3
-rw-r--r-- 1 root root    13 Oct 16 15:17 B
-rw-r--r-- 1 root root    21 Oct 16 15:16 A
-rw-r--r-- 1 root root    64 Oct 16 15:38 C

النهاية

بما فيه بعض معرفة الأوامر sort، يمكنك تنظيم أي قائمة تقريبًا وفقًا لأي حقل وحتى أي تسلسل ترغب فيه. هذه كانت بعض المختلفة لمساعدتك في تنظيم الملفات وفقًا للتاريخ أو الوقت. يمكنك أن تبني معروفًا خاصًا بهذه. ومع ذلك، إذا كان لديك أي مقاربة مثيرة للاهتمام أخرى، يمكنك دائمًا ذكرها في تعليقك.

Source:
https://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/