Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

15 ตัวอย่างการใช้งานจริงของคำสั่ง Unix 'ls' เพื่อการจัดการไฟล์ที่มีประสิทธิภาพ

15 ตัวอย่างการใช้งานจริงของคำสั่ง Unix  ls  เพื่อการจัดการไฟล์ที่มีประสิทธิภาพ ls – ผู้ใช้ Unix และ sysadmins ไม่สามารถอยู่ได้หากไม่มีคำสั่งตัวอักษรสองตัวนี้ ไม่ว่าคุณจะใช้งาน 10 ครั้งต่อวันหรือ 100 ครั้งต่อวัน การรู้ถึงพลังของคำสั่ง ls จะทำให้การเดินทางด้วยบรรทัดคำสั่งของคุณสนุกสนาน

ในบทความนี้ เราจะมาทบทวนตัวอย่างการใช้งานจริงของคำสั่ง ls อันยิ่งใหญ่ 15 ตัวอย่าง

1. เปิดไฟล์ที่แก้ไขล่าสุดโดยใช้ ls -t

หากต้องการเปิดไฟล์ที่แก้ไขล่าสุดในไดเร็กทอรีปัจจุบัน ให้ใช้คำสั่ง ls, head และ vi ร่วมกันดังที่แสดงด้านล่าง

ls -t จัดเรียงไฟล์ตามเวลาแก้ไข โดยแสดงไฟล์ที่แก้ไขล่าสุดก่อน หัว -1 หยิบไฟล์แรกนี้ขึ้นมา

$ vi first-long-file.txt
$ vi second-long-file.txt
$ vi `ls -t | head -1`
[Note: This will open the last file you edited (i.e second-long-file.txt)]

2. แสดงหนึ่งไฟล์ต่อบรรทัดโดยใช้ ls -1

หากต้องการแสดงรายการเดียวต่อบรรทัด ให้ใช้ตัวเลือก -1 ตามที่แสดงด้านล่าง

$ ls -1
bin
boot
cdrom
dev
etc
home
initrd
initrd.img
lib

3. แสดงข้อมูลทั้งหมดเกี่ยวกับไฟล์/ไดเร็กทอรีโดยใช้ ls -l

เพื่อแสดงข้อมูลรายการแบบยาวเกี่ยวกับไฟล์/ไดเร็กทอรี

$ ls -l
-rw-r----- 1 ramesh team-dev 9275204 Jun 13 15:27 mthesaur.txt.gz
  • อักขระที่ 1 – ประเภทไฟล์: อักขระตัวแรกระบุประเภทของไฟล์
    ในตัวอย่างข้างต้น เครื่องหมายยัติภังค์ (-) ในอักขระตัวที่ 1 ระบุว่านี่เป็นไฟล์ปกติ ต่อไปนี้คือตัวเลือกประเภทไฟล์ที่เป็นไปได้ในอักขระตัวแรกของเอาต์พุต ls -l
    • คำอธิบายภาคสนาม
    • – ไฟล์ปกติ
    • ไดเร็กทอรี d
    • ไฟล์ซ็อกเก็ตของ
    • ไฟล์ลิงก์
  • ฟิลด์ 1 – การอนุญาตไฟล์: อักขระ 9 ตัวถัดไประบุสิทธิ์ของไฟล์ อักขระ 3 ตัวแต่ละตัวอ้างถึงสิทธิ์ในการอ่าน เขียน ดำเนินการสำหรับผู้ใช้ กลุ่ม และโลก ในตัวอย่างนี้ -rw-r—– หมายถึงสิทธิ์ในการอ่าน-เขียนสำหรับผู้ใช้ สิทธิ์ในการอ่านของกลุ่ม และไม่มีสิทธิ์สำหรับผู้อื่น
  • ฟิลด์ 2 – จำนวนลิงก์: ฟิลด์ที่สองระบุจำนวนลิงก์สำหรับไฟล์นั้น ในตัวอย่างนี้ 1 หมายถึงลิงก์เดียวไปยังไฟล์นี้
  • ฟิลด์ 3 – เจ้าของ: ฟิลด์ที่สามระบุเจ้าของไฟล์ ในตัวอย่างนี้ ไฟล์นี้เป็นของชื่อผู้ใช้ 'ramesh'
  • ฟิลด์ 4 – กลุ่ม: ฟิลด์ที่สี่ระบุกลุ่มของไฟล์ ในตัวอย่างนี้ ไฟล์นี้เป็นของกลุ่ม ”team-dev’
  • ฟิลด์ 5 – ขนาด: ฟิลด์ที่ห้าระบุขนาดของไฟล์ ในตัวอย่างนี้ '9275204' ระบุขนาดไฟล์
  • ฟิลด์ 6 – วันที่และเวลาแก้ไขล่าสุด: ฟิลด์ที่หกระบุวันที่และเวลาของการแก้ไขไฟล์ครั้งล่าสุด ในตัวอย่างนี้ 'Jun 13 15:27' ระบุเวลาแก้ไขล่าสุดของไฟล์
  • ฟิลด์ 7 – ชื่อไฟล์: ฟิลด์สุดท้ายคือชื่อของไฟล์ ในตัวอย่างนี้ ชื่อไฟล์คือ mthesaur.txt.gz

4. แสดงขนาดไฟล์ในรูปแบบที่มนุษย์สามารถอ่านได้โดยใช้ ls -lh

ใช้ ls -lh (h ย่อมาจากรูปแบบที่มนุษย์สามารถอ่านได้) เพื่อแสดงขนาดไฟล์ในรูปแบบที่อ่านง่าย เช่น M สำหรับ MB, K สำหรับ KB, G สำหรับ GB

$ ls -l
-rw-r----- 1 ramesh team-dev 9275204 Jun 12 15:27 arch-linux.txt.gz*
$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

5. แสดงข้อมูลไดเรกทอรีโดยใช้ ls -ld

เมื่อคุณใช้ “ls -l” คุณจะได้รับรายละเอียดของเนื้อหาไดเร็กทอรี แต่ถ้าคุณต้องการรายละเอียดของไดเร็กทอรี คุณสามารถใช้ตัวเลือก -d ได้ ตัวอย่างเช่น หากคุณใช้ ls -l /etc จะแสดงไฟล์ทั้งหมดภายใต้ไดเร็กทอรี etc แต่ถ้าคุณต้องการแสดงข้อมูลเกี่ยวกับไดเร็กทอรี /etc/ ให้ใช้ตัวเลือก -ld ดังที่แสดงด้านล่าง

$ ls -l /etc
total 3344
-rw-r--r-- 1 root root 15276 Oct 5 2004 a2ps.cfg
-rw-r--r-- 1 root root 2562 Oct 5 2004 a2ps-site.cfg
drwxr-xr-x 4 root root 4096 Feb 2 2007 acpi
-rw-r--r-- 1 root root 48 Feb 8 2008 adjtime
drwxr-xr-x 4 root root 4096 Feb 2 2007 alchemist
$ ls -ld /etc
drwxr-xr-x 21 root root 4096 Jun 15 07:02 /etc

6. เรียงลำดับไฟล์ตามเวลาที่แก้ไขล่าสุดโดยใช้ ls -lt

หากต้องการเรียงลำดับชื่อไฟล์ที่แสดงตามลำดับเวลาแก้ไขล่าสุด ให้ใช้ตัวเลือก -t คุณจะพบว่าใช้ร่วมกับตัวเลือก -l ได้อย่างสะดวก

$ ls -lt
total 76
drwxrwxrwt 14 root root 4096 Jun 22 07:36 tmp
drwxr-xr-x 121 root root 4096 Jun 22 07:05 etc
drwxr-xr-x 13 root root 13780 Jun 22 07:04 dev
drwxr-xr-x 13 root root 4096 Jun 20 23:12 root
drwxr-xr-x 12 root root 4096 Jun 18 08:31 home
drwxr-xr-x 2 root root 4096 May 17 21:21 sbin
lrwxrwxrwx 1 root root 11 May 17 20:29 cdrom -> media/cdrom
drwx------ 2 root root 16384 May 17 20:29 lost+found
drwxr-xr-x 15 root root 4096 Jul 2 2008 var

7. เรียงลำดับไฟล์ตามเวลาที่แก้ไขล่าสุด (ในลำดับย้อนกลับ) โดยใช้ ls -ltr

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

$ ls -ltr
total 76
drwxr-xr-x 15 root root 4096 Jul 2 2008 var
drwx------ 2 root root 16384 May 17 20:29 lost+found
lrwxrwxrwx 1 root root 11 May 17 20:29 cdrom -> media/cdrom
drwxr-xr-x 2 root root 4096 May 17 21:21 sbin
drwxr-xr-x 12 root root 4096 Jun 18 08:31 home
drwxr-xr-x 13 root root 4096 Jun 20 23:12 root
drwxr-xr-x 13 root root 13780 Jun 22 07:04 dev
drwxr-xr-x 121 root root 4096 Jun 22 07:05 etc
drwxrwxrwt 14 root root 4096 Jun 22 07:36 tmp

8. แสดงไฟล์ที่ซ่อนโดยใช้ ls -a (หรือ) ls -A

หากต้องการแสดงไฟล์ที่ซ่อนอยู่ทั้งหมดในไดเร็กทอรี ให้ใช้ '-a option' ไฟล์ที่ซ่อนใน Unix ขึ้นต้นด้วย '.' ในชื่อไฟล์

$ ls -a
[rnatarajan@asp-dev ~]$ ls -a
. Debian-Info.txt
.. CentOS-Info.txt
.bash_history Fedora-Info.txt
.bash_logout .lftp
.bash_profile libiconv-1.11.tar.tar
.bashrc libssh2-0.12-1.2.el4.rf.i386.rpm

มันจะแสดงไฟล์ทั้งหมดรวมถึง '.' (ไดเร็กทอรีปัจจุบัน) และ '..' (ไดเร็กทอรีหลัก) หากต้องการแสดงไฟล์ที่ซ่อน แต่ไม่ใช่ '.' (ไดเร็กทอรีปัจจุบัน) และ '..' (ไดเร็กทอรีหลัก) ให้ใช้ตัวเลือก -A

$ ls -A
Debian-Info.txt Fedora-Info.txt
CentOS-Info.txt Red-Hat-Info.txt
.bash_history SUSE-Info.txt
.bash_logout .lftp
.bash_profile libiconv-1.11.tar.tar
.bashrc libssh2-0.12-1.2.el4.rf.i386.rpm
[Note: . and .. are not displayed here]

9. แสดงไฟล์แบบวนซ้ำโดยใช้ ls -R

$ ls /etc/sysconfig/networking
devices profiles
$ ls -R /etc/sysconfig/networking
/etc/sysconfig/networking:
devices profiles
/etc/sysconfig/networking/devices:
/etc/sysconfig/networking/profiles:
default
/etc/sysconfig/networking/profiles/default:

หากต้องการแสดงไฟล์ทั้งหมดแบบวนซ้ำ ให้ใช้ตัวเลือก -R เมื่อคุณทำเช่นนี้จาก / มันจะแสดงไฟล์ที่ไม่ได้ซ่อนทั้งหมดในระบบไฟล์ทั้งหมดแบบเรียกซ้ำ

10. แสดงหมายเลขไอโหนดของไฟล์โดยใช้ ls -i

บางครั้งคุณอาจต้องการทราบจำนวนไฟล์ที่ไม่ซ้ำสำหรับการบำรุงรักษาภายใน ใช้ตัวเลือก -i ดังที่แสดงด้านล่างเพื่อแสดงหมายเลขเดียว การใช้หมายเลขไอโหนดคุณสามารถลบไฟล์ที่มีอักขระพิเศษในชื่อตามที่อธิบายไว้ในตัวอย่างที่ 6 ของบทความคำสั่ง find

$ ls -i /etc/xinetd.d/
279694 chargen 279724 cups-lpd 279697 daytime-udp
279695 chargen-udp 279696 daytime 279698 echo

11. ซ่อนอักขระควบคุมโดยใช้ ls -q

หากต้องการพิมพ์เครื่องหมายคำถามแทนอักขระควบคุมที่ไม่ใช่กราฟิก ให้ใช้ตัวเลือก -q

ls -q

12. แสดงไฟล์ UID และ GID โดยใช้ ls -n

แสดงรายการเอาต์พุตเช่น -l แต่แสดง uid และ gid ในรูปแบบตัวเลขแทนที่จะเป็นชื่อ

$ ls -l ~/.bash_profile
-rw-r--r-- 1 ramesh ramesh 909 Feb 8 11:48 /home/ramesh/.bash_profile
$ ls -n ~/.bash_profile
-rw-r--r-- 1 511 511 909 Feb 8 11:48 /home/ramesh/.bash_profile
[Note: This display 511 for uid and 511 for gid]

13. การจัดหมวดหมู่ไฟล์ด้วยอักขระพิเศษโดยใช้ ls -F

แทนที่จะทำการ 'ls -l' แล้วตรวจสอบอักขระตัวแรกเพื่อกำหนดประเภทของไฟล์ คุณสามารถใช้ -F ซึ่งจัดประเภทไฟล์ด้วยอักขระพิเศษที่แตกต่างกันสำหรับไฟล์ประเภทต่างๆ

$ ls -F
Desktop/ Documents/ Ubuntu-App@ firstfile Music/ Public/ Templates/

ดังนั้นในผลลัพธ์ข้างต้น

  • / – ไดเร็กทอรี
  • ไม่มีอะไร – ไฟล์ปกติ
  • @ – ไฟล์ลิงก์
  • * – ไฟล์ปฏิบัติการ

14. การจัดหมวดหมู่ไฟล์ด้วยภาพด้วยสีโดยใช้ ls -F

การจำแนกประเภทไฟล์ตามสีที่แสดงเป็นอีกประเภทหนึ่งในการจำแนกประเภทไฟล์ ในไดเร็กทอรีเอาต์พุตด้านบนจะแสดงเป็นสีน้ำเงิน ซอฟต์ลิงก์จะแสดงเป็นสีเขียว และไฟล์ธรรมดาจะแสดงเป็นสีเริ่มต้น

$ ls --color=auto
Desktop Documents Examples firstfile Music Pictures Public Templates Videos

15. นามแฝงคำสั่ง ls ที่มีประโยชน์

คุณสามารถใช้ตัวเลือก ls ที่จำเป็นบางส่วนจากด้านบน และทำให้เป็นนามแฝงได้ เราขอแนะนำสิ่งต่อไปนี้

  • แสดงรายการไฟล์ที่มีขนาดในรูปแบบที่มนุษย์เข้าใจได้
    alias ll="ls -lh"
  • แยกประเภทไฟล์โดยการต่อท้ายอักขระพิเศษ
    alias lv="ls -F"
  • จำแนกประเภทไฟล์ตามสีและอักขระพิเศษ
    alias ls="ls -F --color=auto"

บทความเกี่ยวกับ Linux ที่ยอดเยี่ยม

ต่อไปนี้คือ 15 ตัวอย่าง ที่ยอดเยี่ยมบางส่วน บทความที่คุณอาจพบว่ามีประโยชน์

  • ยึดครอง Grep! – 15 ตัวอย่างคำสั่ง Grep ที่ใช้งานได้จริง
  • Linux Crontab:15 ตัวอย่างงาน Cron ที่ยอดเยี่ยม
  • แม่ครับ ผมเจอแล้ว! — 15 ตัวอย่างคำสั่งค้นหา Linux ที่ใช้งานได้จริง
  • 15 ตัวอย่างเพื่อเชี่ยวชาญประวัติบรรทัดคำสั่ง Linux