ความแตกต่างระหว่าง ls -l และ ll?


59

ฉันค่อนข้างใหม่ในการเขียนโปรแกรมเป็นทั้งบทเรียนและบางส่วนได้รับการบอกให้ผมใช้ls -lจะมองไปที่ไฟล์ในไดเรกทอรีและคนอื่น ๆ llได้รับการพูด ฉันรู้ว่าlsเป็นรายการสั้น ๆ แต่มีความแตกต่างระหว่างอีกสองคนหรือไม่


8
which llคุณอาจต้องการที่จะดูที่ คุณอาจจะพบว่าเป็นจริงนามแฝงสำหรับll ls -l
HalosGhost

ดังนั้นอะไรคือความแตกต่างระหว่างlsคำสั่งอื่น ๆ ที่ฉันใส่ลงไปในเชลล์? ถ้าฉันพิมพ์which lsฉันได้รับalias ls='ls --color=auto' /bin/lsแต่ถ้าผมพิมพ์ (ตัวอย่าง) ฉันได้รับwhich cd /usr/bin/which: no cd in (........)แก้ไข: ฉันพยายามมันอีกครั้งกับและฉันได้which mkdir /bin/mkdirอะไรคือความแตกต่างระหว่างคำสั่งเหล่านี้ที่บางคำสั่งถูกเก็บไว้ (?) ใน/usr/binและบางคำสั่งไม่ชัดเจน
Jon

นี่คือผลกระทบจากค่าเริ่มต้นของ distro ของ$PATHคุณ lsบ่อยครั้งจะเป็นนามแฝงดังนั้นเชลล์ของคุณจะรายงานนามแฝง (ซึ่งมีความสำคัญเหนือกว่าไบนารี) และตำแหน่งจริงของไบนารี (ในกรณีของคุณ/bin/ls) หากwhichไม่สามารถค้นหาได้แสดงว่าcdมีบางอย่างผิดปกติอย่างมาก
HalosGhost

2
cdเป็นคีย์เวิร์ด shell builtin ไม่ใช่โปรแกรมที่พบในระบบไฟล์ ใช้type cdและtype lsดูว่าฉันหมายถึงอะไร คำสั่งบางคำง่าย ๆ โดยเชลล์บิวด์อิน: echoมีอยู่/bin/echoแต่ในbashความเป็นจริงแล้วเชลล์ส่วนใหญ่ในปัจจุบันมีechoการเรียกใช้ฟังก์ชันบิวอินแทน (ซึ่งมักจะมีคุณสมบัติเพิ่มเติม) typeจริง ๆ แล้วบอกคุณว่าอันไหน
orion

คำตอบ:


88

ในหลาย ๆ ระบบllเป็นนามแฝงของls -l:

$ type ll
ll is aliased to `ls -l'

พวกเขาก็เหมือน ๆ กัน.


3
ll เป็นนามแฝงของ `ls -ltr '- ฉันใช้ Red Hat 6
rdp

3
ใน Ubuntu 14.04 ll จะใช้นามแฝงเป็น 'ls -alF'
Viktor

3
นอกจากนี้ls -alFใน Ubuntu 12.04, 16.04 และอื่น ๆ อีกมากมาย
Paul

3
สำหรับฉันใน macOS Sierra ll ได้รับการขนานนามว่าls -lh
Zorgatone

13

เท่าที่สังเกตมักจะถูกกำหนดให้เป็นนามแฝงของll ls -lในความเป็นจริงlsมักจะเป็นนามแฝงเอง:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

คำสั่งที่เกิดขึ้นจริงที่ดังกล่าวข้างต้นจะพบได้ในls มีไว้เพื่อความสะดวก แต่คุณไม่สามารถเชื่อใจได้ว่ามันถูกกำหนดไว้ในระบบ * nix ทั้งหมดดังนั้นจึงเป็นการดีที่จะรู้ว่ามันกำลังทำอะไรอยู่/usr/binll


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

ฉันไม่ได้เห็นใด ๆ กระจายความนิยมไปยังนามแฝงกับสิ่งอื่นมากกว่าls ls --color=autoมันเป็นอย่างนั้นหรือไม่มีนามแฝง
phoops

4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'

1
นอกจากนี้ 12.04 และ 16.04 แต่นั่นคือทั้งหมดที่ฉันมีให้ทดสอบตอนนี้
พอล

3

ในกรณีส่วนใหญ่llไม่ทำงานในเชลล์สคริปต์


1
สิ่งที่เกิดขึ้นคือโดยทั่วไปคำสั่งเช่นllนั้นเป็นชื่อแทนจริง ๆ ซึ่งไม่ได้กำหนดไว้เมื่อเรียกใช้สคริปต์
vonbrand

3
บางคนมีนามแฝงใน. profile และนามแฝงทำงานในเชลล์แบบโต้ตอบ หลังจากตรวจแก้จุดบกพร่อง / ทดสอบสคริปต์ใหม่สคริปต์จะล้มเหลวใน crontab ทันที Cron ไม่ได้อ่าน. profile
วอลเตอร์

1
นี่ไม่ใช่คำตอบสำหรับคำถาม แต่ควรเป็นความคิดเห็นแทน จากความเข้าใจเพียงเล็กน้อยของฉันนามแฝงจะถูกคัดค้านในเชลล์สคริปต์
cornflakes24

ผมบอกว่า "ส่วนใหญ่" แต่มันก็ไม่ได้อยู่ในเหมืองและใช้ ils -l
travelingbones

1

llls -lเป็นนามแฝงสำหรับ

ตัวเลือก-lบอกให้คำสั่งใช้รูปแบบรายการแบบยาว มันให้กลับหลายคอลัมน์ไม่แสดงเมื่อใช้lsคำสั่งง่าย ๆ คอลัมน์เหล่านี้รวมถึง:

  • สิทธิ์

  • จำนวนฮาร์ดลิงก์

  • เจ้าของไฟล์

  • กลุ่มไฟล์

  • ขนาดไฟล์

  • การแก้ไข

  • เวลา

  • ชื่อไฟล์


0

ll จะใช้นามแฝงว่า `ls -l 'หากคุณเรียกใช้ ll มันจะแสดงไฟล์ในเชลล์จากนั้นให้คุณกด Enter เพื่อดูไฟล์ถัดไป (ตัวเลือกเพิ่มเติม .. ) หากคุณรัน ls -l ไฟล์ทั้งหมดจะปรากฏขึ้นพร้อมกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.