ความคิดที่ปิดผนัง
ข้อจำกัดความรับผิดชอบ: นี่จะเกินความเป็นจริงสำหรับคุณส่วนใหญ่ แต่ฉันได้ทำสิ่งนี้มาตั้งแต่ปี 1995 และฉันมีทักษะที่จะทำให้โลกของฉันเป็นไปตามที่ฉันต้องการ ดังนั้นทำไมไม่
ฉันชอบใช้วิธีการเรียงลำดับที่แตกต่างกันls
โดยเฉพาะอย่างยิ่ง-rt
(ซึ่งจัดเรียงตามime ที่r
แก้ไขแล้วt
) ดังนั้นฉันตัดสินใจที่จะลองสิ่งที่บ้าและใช้ awk เพื่อทำการเรียงลำดับของฉัน
# save as ~/.ls.awk
# inpsired by http://superuser.com/questions/448291/how-can-i-make-ls-show-dotfiles-first
{
if($1 == "total"){
print $0
next
}
# may need to adjust $9 to match your name column
if(match($9, /^(\033\[[0-9]*m)*\./)) # optionally look past xterm highlighting like: ^[[34m
df[++dd] = $0
else
nf[++nn] = $0
}
END{
while (++d in df)
print df[d]
while (++n in nf)
print nf[n]
}
ตอนนี้แทนที่จะกำหนดนามแฝงทุบตีฉันกำหนดฟังก์ชั่นทุบตี (เพราะนามแฝงสามารถต่อท้ายข้อโต้แย้งที่ท้าย แต่ฟังก์ชั่นสามารถใช้งานได้ทุกที่)
ll(){ CLICOLOR_FORCE=1 ls -lhA $* | awk -f ~/.ls.awk; }
เพื่อดูผลลัพธ์
ลองสร้างตัวอย่างไฟล์:
for n in 4 .4 3 .3 2 .2 1 .1; do touch $n; sleep 1; done
ใช้ ls ธรรมดา
$ ls -lA
total 8
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4
$ ls -lArt
total 8
-rwxr-xr-x 1 bbronosky staff 285 Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 4
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 3
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .3
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 2
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .2
-rwxr-xr-x 1 bbronosky staff 0 Dec 1 00:25 1
-rw-r--r-- 1 bbronosky staff 0 Dec 1 00:25 .1
ใช้ฟังก์ชั่นของฉันที่กรองด้วย awk
$ ll
total 8
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4
-rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4
$ ll -rt
total 8
-rwxr-xr-x 1 bbronosky staff 285B Nov 29 13:14 .ls.awk
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .4
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .3
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .2
-rw-r--r-- 1 bbronosky staff 0B Dec 1 00:25 .1
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 4
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 3
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 2
-rwxr-xr-x 1 bbronosky staff 0B Dec 1 00:25 1
คุณสามารถดูการใช้งานของฉันที่นี่https://github.com/RichardBronosky/dotfiles/commit/6170c0a9
สิ่งที่สำคัญที่สุดเกี่ยวกับเรื่องนี้คือมันเป็นกรอบสำหรับการปรับแต่งls
ผลลัพธ์ของคุณ คุณสามารถทำอะไรก็ได้ที่คุณต้องการด้วยตัวกรอง awk คุณอาจต้องการให้มันเป็นไดเรกทอรีแล้วดอทไฟล์แล้วทุกอย่างอื่น เมื่อคุณรู้วิธีจัดการกับสี xterm แล้วก็ไม่ยากเกินไป มันขึ้นอยู่กับคุณทั้งหมด