สัญลักษณ์ที่แสดงโดย ls -F หมายถึงอะไร


61

ฉันสังเกตเห็นว่าถ้าฉันรัน ls -F ในไดเรกทอรีบางรายการมี * หรือ @ ตามหลังพวกเขา

spuder@ubuntu:~$ ls -F /sbin
acpi_available*   getpcaps*           lvmconf*                 ntfscp*        start-stop-daemon*
agetty*           getty*              lvmdiskscan@             ntfslabel*     status@
alsa*             halt@               lvmdump*                 ntfsresize*    stop@
alsactl*          hdparm*             lvmsadc@    

spuder@ubuntu:~$ ls -F ~
daq-0.6.1/  examples.desktop       noname-cache.lib  snort-2.9.1/   Templates/
Desktop/    jpgraph-1.27.1/        noname.sch        snortfiles/    Ubuntu One/
Documents/  

อ้างอิงจาก ls man pages

spuder@ubuntu:~$ man ls
...
-F, --classify
  append indicator (one of */=>@|) to entries
...

ฉันเดาว่านั่น@หมายถึงลิงก์สัญลักษณ์

ตัวบ่งชี้อื่น ๆ เหล่านี้หมายความว่าอะไร ( */=>@|)


2
คุณคิดที่จะดูหน้าคน?
mdpc

23
เขามี. ในความเป็นจริงเขาโพสต์ข้อความที่ตัดตอนมาจาก manpage lsเอกสารฉบับเต็มรวมถึงข้อมูลเกี่ยวกับสัญลักษณ์ที่แสดงโดยls -Fอยู่ในคู่มือ Texinfo ( info ls)

1
สังเกตด้านบนตั้งแต่คู่มือ Texinfo infos () { info --vi-keys --subnodes -o - "$@" | less; }มักรู้สึกแปลกและต่างประเทศเป็นเรื่องปกติที่จะทำให้รอบการทำงานเช่นนี้:

1
@EvanTeitelman นี่เป็นข้อมูลที่ดีมากฉันจะinfo foo --vi-keysจำไว้ น่าเสียดายที่ไวยากรณ์ที่คุณกล่าวถึงใช้งานไม่ได้สำหรับฉัน (infos () {info --vi-keys ... }
spuder

1
@spuder: มันเป็นฟังก์ชั่น คุณต้องเรียกมันว่า infos ls. ส่วนหนึ่งผ่านอาร์กิวเมนต์ทั้งหมดที่ฟังก์ชั่นที่จะ$@ infoคุณสามารถใส่ฟังก์ชั่นนี้ใน~/.bashrcไฟล์ของคุณเพื่อใช้ในภายหลัง

คำตอบ:


67

ls -Fผนวกสัญลักษณ์เข้ากับชื่อไฟล์ สัญลักษณ์เหล่านี้แสดงข้อมูลที่เป็นประโยชน์เกี่ยวกับไฟล์

alias ls='ls -F'หากคุณต้องการพฤติกรรมนี้จะเริ่มต้นเพิ่มส่วนนี้ในการกำหนดค่าเปลือกของคุณ:


10
ไม่ใช้คำสั่ง realias มันอาจทำให้สคริปต์ที่เขียนไม่ดี ฉันได้นามแฝงแล้วlว่ามี -F และสีและllยังมี -l
ctrl-alt-delor

บน Android ฉันได้รับผลลัพท์สองคอลัมน์อย่างสมบูรณ์ ฉันได้รับชื่อไฟล์หรือชื่อไดเรกทอรีและก่อนชื่อมีลบถ้ามันเป็นไฟล์หรือ "d" ถ้ามันเป็นไดเรกทอรีหรือ "ld" ถ้ามันเป็นลิงค์ มันเป็นความหายนะที่ Linuxes ไม่สอดคล้องกันมาก
Elmue

1

เพียงเพิ่มวิธีที่ฉันพบข้อมูลนี้ ตามที่ระบุไว้ที่ด้านล่างของman ls:

เอกสารฉบับเต็มได้ที่: https://www.gnu.org/software/coreutils/ls หรือให้บริการในพื้นที่ผ่านทาง: ข้อมูล '(coreutils) ls การเรียกใช้'

ติดตามนี้เราเห็น

'-F' '--classify' '--indicator-style = classify' เพิ่มอักขระต่อท้ายชื่อไฟล์แต่ละไฟล์เพื่อระบุประเภทของไฟล์ นอกจากนี้สำหรับไฟล์ปกติที่สามารถใช้งานได้ให้ผนวก '*' ตัวบ่งชี้ประเภทไฟล์คือ '/' สำหรับไดเรกทอรี, '@' สำหรับลิงก์สัญลักษณ์ '|' สำหรับ FIFOs, '=' สำหรับซ็อกเก็ต, '>' สำหรับประตูและไม่มีอะไรสำหรับไฟล์ปกติ อย่าทำตามลิงก์สัญลักษณ์ที่แสดงรายการบนบรรทัดคำสั่งยกเว้นว่ามีการระบุตัวเลือก --dereference-command-line (-H), --dereference (-L) หรือ --dereference-command-line-symlink-to-dir

บนhttps://www.gnu.org/software/coreutils/manual/coreutils.html#ls-invocation

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