รับพา ธ แบบเต็มไปยังไฟล์ด้วย“ readlink -f” ไม่ทำงานบน OSX?


2

บน Linux (redhat / ubuntu / คุณตั้งชื่อ) ฉันสามารถทำสิ่งนี้:

$readlink -f myfile.txt
/tmp/local/path/to/myfile.txt

บน OSX (โยเซมิตี):

$ readlink -f eclipse-projects.xml 
readlink: illegal option -- f

ใครสามารถบอกฉันว่าเกิดอะไรขึ้น "เทียบเท่า" ของอะไร -f บน osx? (และทำไมผู้คนถึงชอบทำในสิ่งที่ไม่สอดคล้องกันเลย!)



OS X ไม่ใช่ Linux มันคือยูนิกซ์ ;) คุณสามารถติดตั้ง GNU coreutils ผ่านทาง brew ถ้าคุณต้องการพวกเขา
Daniel B

@DanielB ใช่ฉันได้ยิน ya ... แต่ยังคงความสอดคล้องบางอย่างไม่เจ็บ
One Two Three

คำตอบนี้มีความยาวในฟอรัมอื่น: ฉันจะดูพฤติกรรมของ readlink ของ GNU บน Mac ได้อย่างไร
Thomas Dickey

@Daniel B Yup และยิ่งเจาะจงยิ่งขึ้นมันคล้ายกับ BSD (และจาก) สำหรับ OP นั้น Apple ชอบที่จะทำสิ่งที่ไม่สอดคล้องกันเป็นพิเศษ พวกเขาละทิ้งมาตรฐานอุตสาหกรรม ตัวอย่างที่ดีคือ SSD ซึ่งเหมือนกันกับ SSD อื่น ๆ แต่มีการจัดเรียงพินที่เป็นกรรมสิทธิ์และค่าใช้จ่าย 4x ฉันค่อนข้างแน่ใจว่า SSD สไตล์ 2011 ถึง 2013 เป็นตัวเชื่อมต่อ M.2 อย่างแท้จริงพร้อมช่องเสียบที่ถูกย้ายไปยังตำแหน่งอื่น
Layne Bernardo

คำตอบ:


0
# Return the canonicalized path (works on OS-X like 'readlink -f' on Linux); . is $PWD
function realpath {
    [ "." = "${1}" ] && n=${PWD} || n=${1}; while nn=$( readlink -n "$n" ); do n=$nn; done; echo "$n"
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.