l, ls & la - อะไรคือความแตกต่างและมีคำสั่งเหล่านี้อีกหรือไม่


25

ดังนั้นด้วยการพิมพ์หลาย ๆ คำสั่งฉันพบว่ามันมีไม่เพียงlsแต่lและlaด้วย ดูเหมือนจะไม่มีmanรายการใด ๆบน Ubuntu 12.14 พวกเขาดูเหมือนจะทำสิ่งที่คล้ายกันและมีความแตกต่างเล็กน้อย

$ ls
app        config     CONTRIBUTING.md  doc       Gemfile       Guardfile  LICENSE  MAINTENANCE.md  Procfile  Rakefile   script  tmp     VERSION
CHANGELOG  config.ru  db               features  Gemfile.lock  lib        log      PROCESS.md      public    README.md  spec    vendor
$ la
app      CHANGELOG  config.ru        db   features  Gemfile       .git        Guardfile  LICENSE  MAINTENANCE.md  Procfile  Rakefile   .rspec  .secret     spec  .travis.yml  VERSION
.bundle  config     CONTRIBUTING.md  doc  .foreman  Gemfile.lock  .gitignore  lib        log      PROCESS.md      public    README.md  script  .simplecov  tmp   vendor
$ l
app/       config/    CONTRIBUTING.md  doc/       Gemfile       Guardfile  LICENSE  MAINTENANCE.md  Procfile  Rakefile   script/  tmp/     VERSION
CHANGELOG  config.ru  db/              features/  Gemfile.lock  lib/       log/     PROCESS.md      public/   README.md  spec/    vendor/

เหมือนกับเรื่องไม่สำคัญมีอะไรมากกว่านี้และพวกเขาจะทำอย่างไร? อยู่ที่นี่เพื่อหาคำตอบนี้หรือไม่? น่าเสียดายที่ google ค้นหาคำสั่งเหล่านี้จะถูกเพิกเฉย


1
ส่วนใหญ่แล้วพวกเขาจะถูกใช้นามแฝงกับสิ่งที่มีอยู่แล้ว AFAIK ไม่มีlaหรือlคำสั่ง ลอง\laและ\lหลีกเลี่ยงนามแฝงที่เป็นไปได้
mkc

\lsพอแน่ใจว่าเป็นเพียงคนเดียวที่ทำงานเป็น ฉันหมายความว่าพวกเขาทุกคนเป็นนามแฝงlsแล้วหรือยัง?
Seiyria

ถูกต้องการไม่มีโปรแกรมเรียกทำงานจะบอกคุณว่าเป็นนามแฝง ดูคำตอบของฉันสำหรับวิธีอื่น ๆ เพื่อตรวจสอบนี้
slm

คำตอบ:


26

นามแฝง

lsเป็นคำสั่งlและlaเป็นชื่อแทนที่น่าจะใช้ประโยชน์จากคำสั่งlsมากที่สุด หากคุณเรียกใช้คำสั่งaliasคุณสามารถค้นหานามแฝงทั้งหมดในระบบของคุณ

$ alias | grep -E ' l=| la='

นี้จะกลับนามแฝงทั้งหมดที่ตรงกับรูปแบบหรือl=...la=...

แก้ไขข้อบกพร่องเพิ่มเติม

นอกจากนี้คุณยังสามารถใช้คำสั่งtypeเพื่อดูว่าคำสั่งเฉพาะจะดำเนินการอย่างไร มันเป็นคำสั่งนามแฝงหรือฟังก์ชั่น

ตัวอย่าง

ในระบบของฉันฉันมีlsนามแฝงคำสั่งเพื่อที่จะเรียกlsแต่ยังรวมถึงสวิตช์พิเศษมากมายเช่น:

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
ls is /bin/ls

ในการส่งออกดังกล่าวข้างต้นจะเห็นได้ว่าlsเป็นชื่อแทน แต่แล้วก็ยังอยู่ในระบบของฉัน $ PATH ในไดเรกทอรีและ/usr/bin/bin


ขอบคุณสำหรับตัวอย่างในเชิงลึก ฉันเรียนรู้เกี่ยวกับ linux อีกเล็กน้อยในวันนี้!
Seiyria

@Seiyria - คุณยินดีต้อนรับค่อนข้าง ขอบคุณสำหรับคำถามและหวังว่าจะได้พบคุณในเว็บไซต์ของเราในอนาคต ขอให้โชคดีเมื่อคุณโจมตี Linux!
slm

9

พวกเขาเป็นเพียงนามแฝงของคำสั่ง ls ที่มีตัวเลือกบางอย่าง ป้อนคำอธิบายรูปภาพที่นี่

ผู้ชาย lsจะออกรายการตัวเลือกทั้งหมดและวัตถุประสงค์ของพวกเขา คุณสามารถสร้างนามแฝงของคุณเองโดยดำเนินการบนเทอร์มินัลหรือเพิ่ม. bashrc บางอย่างเช่น: alias lsl = 'ls -lrt'


3
รหัสควรจัดรูปแบบเป็นรหัสไม่ใช่ภาพหน้าจอเว้นแต่ว่ามีการแสดงสี
ทิม

-1

ลองla -helpบนระบบ BSD Unix laที่จะได้รับข้อมูลเพิ่มเติมเกี่ยวกับ ฉันก็พบlaว่าเป็นผลมาจากการพิมพ์ผิด


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