ค้นหาเว็บไซต์

วิธีค้นหาและจัดเรียงไฟล์ตามวันที่และเวลาที่แก้ไขใน Linux


โดยปกติแล้ว เรามักจะบันทึกข้อมูลจำนวนมากในรูปแบบของไฟล์ในระบบของเรา ไฟล์บางไฟล์ที่ซ่อนอยู่ บางไฟล์เก็บไว้ในโฟลเดอร์แยกต่างหากที่สร้างขึ้นเพื่อความสะดวกของเราในการทำความเข้าใจ ในขณะที่บางไฟล์ยังคงอยู่ แต่เนื้อหาทั้งหมดนี้เต็มไดเร็กทอรีของเรา มักจะเป็นเดสก์ท็อป ซึ่งทำให้ดูยุ่งเหยิง แต่ปัญหาเกิดขึ้นเมื่อเราต้องค้นหาไฟล์เฉพาะที่แก้ไขตามวันที่และเวลาในคอลเล็กชันขนาดใหญ่นี้

ผู้คนที่คุ้นเคยกับ GUI สามารถค้นหามันได้โดยใช้ File Manager ซึ่งแสดงรายการไฟล์ในรูปแบบรายการยาว ทำให้ง่ายต่อการทราบว่าเราต้องการอะไร แต่ผู้ใช้เหล่านั้นมีนิสัยชอบหน้าจอสีดำ หรือแม้แต่ใครก็ตามที่ทำงานบนเซิร์ฟเวอร์ที่ไม่มี GUI ต้องการคำสั่งง่ายๆ หรือชุดคำสั่งที่ช่วยให้การค้นหาง่ายขึ้น

ความงามที่แท้จริงของ Linux แสดงให้เห็นที่นี่ เนื่องจาก Linux มีชุดคำสั่งซึ่งหากใช้แยกกันหรือร่วมกันสามารถช่วยค้นหาไฟล์หรือจัดเรียงชุดของไฟล์ตามชื่อ วันที่แก้ไข เวลาที่สร้าง หรือแม้แต่ใดๆ ตัวกรองที่คุณคิดจะสมัครเพื่อให้ได้ผลลัพธ์

ที่นี่ เราจะเปิดเผยจุดแข็งที่แท้จริงของ Linux โดยตรวจสอบชุดคำสั่งที่สามารถช่วยจัดเรียงไฟล์หรือแม้แต่รายการไฟล์ตาม วันที่ และ เวลา

ยูทิลิตี้ Linux เพื่อจัดเรียงไฟล์ใน Linux

ยูทิลิตีบรรทัดคำสั่งพื้นฐานของ Linux บางส่วนที่เพียงพอสำหรับการจัดเรียงไดเร็กทอรีตาม วันที่ และ เวลา ได้แก่:

คำสั่ง ls

ls – การแสดงรายการเนื้อหาของไดเร็กทอรี ยูทิลิตี้นี้สามารถแสดงรายการไฟล์และไดเร็กทอรีและยังสามารถแสดงรายการข้อมูลสถานะทั้งหมดเกี่ยวกับสิ่งเหล่านั้น รวมถึง: วันที่และเวลาที่แก้ไขหรือเข้าถึง สิทธิ์ ขนาด เจ้าของ กลุ่ม ฯลฯ .

เราได้กล่าวถึงบทความมากมายเกี่ยวกับ ls command และ sort command ของ Linux แล้ว คุณสามารถดูได้ที่ด้านล่าง:

  1. เรียนรู้คำสั่ง ls พร้อมตัวอย่างพื้นฐาน 15 ตัวอย่าง
  2. เรียนรู้คำสั่ง ls ขั้นสูง 7 คำพร้อมตัวอย่าง
  3. 15 คำถามสัมภาษณ์ที่มีประโยชน์บน ls Command ใน Linux

คำสั่งเรียงลำดับ

เรียงลำดับ – คำสั่งนี้สามารถใช้เพื่อจัดเรียงผลลัพธ์ของการค้นหาใดๆ เพียงตามฟิลด์ใดๆ หรือคอลัมน์ใดคอลัมน์หนึ่งของฟิลด์

เราได้กล่าวถึงสองบทความเกี่ยวกับ คำสั่งการเรียงลำดับ ของ Linux แล้ว คุณสามารถดูได้ที่ด้านล่าง:

  1. 14 ตัวอย่างคำสั่ง 'sort' ของ Linux - ตอนที่ 1
  2. 7 ตัวอย่างคำสั่ง 'เรียงลำดับ' Linux ที่มีประโยชน์ - ตอนที่ 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' จะแสดงรายการเอาต์พุตแบบย้อนกลับ คำสั่ง.

สำหรับการเรียงลำดับเชิงลึกมากขึ้น เช่น การเรียงลำดับตามคำสั่ง Output ของคำสั่ง find อย่างไรก็ตาม สามารถใช้ ls ได้เช่นกัน แต่มี 'sort ' มีประโยชน์มากกว่า เนื่องจากผลลัพธ์อาจไม่ได้มีเพียงชื่อไฟล์เท่านั้น แต่ยังมีฟิลด์ใดๆ ที่ผู้ใช้ต้องการอีกด้วย

คำสั่งด้านล่างแสดงการใช้ sort ด้วยคำสั่ง find เพื่อจัดเรียงรายการไฟล์ตาม วันที่ และ เวลา

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง find ให้ไปที่ลิงก์นี้: 35 ตัวอย่างการปฏิบัติของคำสั่ง 'find' ใน 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. การเรียงลำดับ Ouptut ของ ls -l ตามวันที่

คำสั่งนี้จะเรียงลำดับเอาต์พุตของคำสั่ง 'ls -l' ตามเดือนของฟิลด์ที่ 6 จากนั้นขึ้นอยู่กับฟิลด์ที่ 7 ซึ่งเป็นวันที่เป็นตัวเลข

# 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 คุณสามารถจัดเรียงรายชื่อได้เกือบทุกรายการตามฟิลด์ใดๆ หรือแม้แต่คอลัมน์ที่คุณต้องการ นี่เป็นเคล็ดลับบางส่วนที่จะช่วยคุณจัดเรียงไฟล์ตามวันที่หรือเวลา คุณสามารถสร้างลูกเล่นของคุณเองตามสิ่งเหล่านี้ อย่างไรก็ตาม หากคุณมีเคล็ดลับอื่นๆ ที่น่าสนใจ คุณสามารถพูดถึงสิ่งนั้นในความคิดเห็นของคุณได้เสมอ