`` `` `` `` `` `` `` `` `` `` `` `` `` `` `และ` `` `` `แยก symlink อย่างไร


1

ฉันทำงานประจำวันนี้และดูเหมือนว่าstatและfileคำสั่งในเทอร์มินัลจะไม่แสดงหากไฟล์เป็นลิงค์สัญลักษณ์:

flow2k@myPad:dir ln -s aa.iml superlink
flow2k@myPad:dir stat superlink
16777220 11057327 lrwxr-xr-x 1 flow2k staff 0 6 "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" 4096 8 0 superlink

ฉันจะดูได้อย่างไรว่ามีบางสิ่งที่เป็น symlink


ผลลัพธ์แบบใดที่คุณคาดว่าจะแสดงว่าเป็น symlink
nohillside

@patrix ค่อนข้างคุ้นเคยกับ Linux ฉันคาดว่าสตริง "symbolic link" จะแสดงอย่างชัดเจนในผลลัพธ์เช่นตัวอย่างที่แสดงที่นี่unix.stackexchange.com/a/49326/227169
flow2k

macOS ไม่ใช่ Linux :-)
nohillside

คำตอบ:


2

lในlrwxr-xr-xการแสดงที่มีการเชื่อมโยง (สัญลักษณ์)
ใช้readlink fileเพื่อแสดงตำแหน่งที่ลิงก์สัญลักษณ์ชี้ไป

statหน้าคู่มือฯ :

เมื่อเรียกใช้เป็นreadlinkเฉพาะเป้าหมายของลิงก์สัญลักษณ์เท่านั้นที่จะถูกพิมพ์ หากอาร์กิวเมนต์ที่กำหนดไม่ใช่ลิงก์สัญลักษณ์readlinkจะพิมพ์อะไรและออกโดยมีข้อผิดพลาด


2

BSD statและfileแตกต่างจากคู่ของ Linux แต่รุ่น BSD สามารถเลียนแบบเอาต์พุต Linux จากคู่มือสำหรับfile:

-h, --no-dereference
         option causes symlinks not to be followed (on systems that support symbolic links).

file -h /etc
/etc: symbolic link to private/etc

และจากคู่มือสำหรับ stat

 -x      Display information in a more verbose way as known from some Linux distributions.

stat -x /etc
File: "/etc"
Size: 11           FileType: Symbolic Link
Mode: (0755/lrwxr-xr-x)         Uid: (    0/    root)  Gid: (    0/   wheel)
Device: 1,4   Inode: 419701    Links: 1
Access: Sun Apr 16 14:39:45 2017
Modify: Sun Apr 16 14:39:45 2017
Change: Sun Apr 16 14:41:19 2017    
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.