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