อะไรทำให้สแลชสองครั้งใน Linux


9

ฉันกำลังติดตั้ง TCE และเห็นเครื่องหมายทับสองครั้ง ( //) ในเส้นทางการติดตั้ง ทำไมพวกเขาถึงอยู่ที่นั่น?

 100% - /usr/local/games/enemy-territory//tcetest/ReadMe.rtf
 100% - /usr/local/games/enemy-territory//tcetest/changelog.rtf
 100% - /usr/local/games/enemy-territory//tcetest/ui.mp.i386.so
 100% - /usr/local/games/enemy-territory//tcetest/qagame.mp.i386.so
 100% - /usr/local/games/enemy-territory//tcetest/pak3.pk3
 100% - /usr/local/games/enemy-territory//tcetest/pak2.pk3

คำตอบ:


9

สิ่งนี้เกิดขึ้นบ่อยมากและไม่เป็นอันตราย ทับสองครั้งถูกตีความเหมือนทับอย่างง่าย

(ดูman path_resolutionเพื่อทำความเข้าใจกระบวนการแก้ไขพา ธ )


คุณสามารถโพสต์บทความใด ๆ ที่ฉันสามารถตรวจสอบได้?
kravemir

ฉันแก้ไขโพสต์แล้ว แม้ว่าปัญหาของ double slash ไม่ได้กล่าวถึงอย่างชัดเจนใน man page แต่คุณสามารถอนุมานคำตอบได้
Stéphane Gimenez

1
ยังคงเป็นคำถามจริงเหลืออยู่: ทำไมพวกเขาอยู่ที่นั่น? :)
slhck

ง่าย: การเขียนโปรแกรม มันจะดีกว่าที่จะมีมากกว่าที่จะไม่และคุณมักจะเรียกใช้มันผ่าน "path.n ปกติize ()" ใน lang / tool ที่คุณเลือก :)
bgs

13

มันเป็นเพียงผลลัพธ์ของการตัดแบ่งเส้นทางเป็นสตริงข้อความธรรมดา

ตัวอย่างเช่นหากคุณระบุไดเรกทอรีปลายทางรวมถึงเครื่องหมายทับสิ้นสุด ...

ทำให้ DESTDIR = / usr / local / เกม / ศัตรูอาณาเขต /ติดตั้ง

... และโปรแกรมติดตั้งใช้สิ่งนี้:

$ (DESTDIR) /tcetest/pak3.pk3

เมื่อบรรทัดด้านบนขยายออกมา$(DESTDIR)ก็จะถูกแทนที่ด้วยเนื้อหาที่แน่นอนของตัวแปรทำให้เกิด:

/ usr / local / เกม / ศัตรูอาณาเขต / /tcetest/pak3.pk3

ดังที่Stéphaneกล่าวไว้ในคำตอบการมีเครื่องหมายสแลชสองอันในพา ธ นั้นไม่เป็นอันตรายทั้งหมดซึ่งเป็นสาเหตุที่สคริปต์การติดตั้งส่วนใหญ่ไม่รบกวนการลบออก

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