~ หมายถึงอะไรในเส้นทางของไฟล์?


43

อะไร~มีค่าเฉลี่ยอยู่ในเส้นทางของไฟล์แน่นอน?

ฉันเห็นสิ่งนี้ในผลลัพธ์ของสิ่งต่าง ๆ เช่น build script แต่ไม่มีเส้นทาง


25
ระบบปฏิบัติการใด
ChrisF

Windows ไม่ใช่การทอยลูกเต๋าเริ่มต้นใช่หรือไม่
Pacerier

คำตอบ:


35

โดยปกติจะหมายถึงไดเรกทอรีบ้านของผู้ใช้เช่น~mike/จะเป็นไดเรกทอรีบ้านของผู้ใช้จะเป็นmikeไดเรกทอรีบ้าน~/ของคุณเอง อย่างไรก็ตามมันก็ไม่ชัดเจนสำหรับฉันว่าควร~/และ~mike/ควรได้รับการพิจารณาว่าสัมบูรณ์หรือญาติ; ดูเหมือนว่าจะขึ้นอยู่กับคำจำกัดความที่ให้ไว้ (ถ้าใครสามารถมาพร้อมกับการอ้างอิงที่มีสิทธิ์โปรดโพสต์ความคิดเห็น)

โปรดทราบว่าฉันกำลังพูดถึงระบบที่ใช้ Unix ที่นี่

ดูhttp://en.wikipedia.org/wiki/Home_directory#Unix


3
มันเป็นแบบสัมบูรณ์เนื่องจากเป็นคำพ้องความหมายสำหรับพา ธ สัมบูรณ์: บน UNIX พา ธ สัมบูรณ์สามารถสรุปได้จากเนื้อหาของ/etc/loginไฟล์ การขยายจะทำโดยเชลล์ แต่ภาษาใดก็ตามที่มีการอ้างว่าเป็น "สคริปต์" จะทำเช่นนี้
Charles Stewart

2
+1: ฉันไม่รู้เกี่ยวกับ~username/สิ่งนี้
Wuffers

2
ที่น่าสนใจ Windows PowerShell ก็ยอมรับ~ว่าเป็นคำพ้องความหมายสำหรับคำสั่งที่บ้านของผู้ใช้
Joey

1
Jeffery Snover ได้กล่าวว่า PowerShell มีพื้นฐานมาจาก VIM / EMACs
Anonymous Type

1
@Charles Stewart เป็นอย่างน้อย ~ / เป็นญาติเนื่องจากขึ้นอยู่กับบริบทของผู้ใช้ นอกจากนี้การอ้างอิงบางอย่างยังกำหนดเส้นทางแบบสัมบูรณ์ตามที่ได้รับจากรูทของระบบไฟล์ซึ่งสิ่งเหล่านี้ไม่ใช่ หากคุณมีการอ้างอิงสำหรับคำสั่งของคุณโปรดแบ่งปัน!
Adrian Mouat

21

ที่จริงแล้วทั้งคำตอบของ Adrian Mouat และ studiohack นั้นเป็นจริง
ในระบบปฏิบัติการที่มีหลักการตั้งชื่อที่ จำกัด (Windows / DOS รุ่นเก่า ฯลฯ ) หมายถึงชื่อที่ยาว

e.g. "c:\program files\" is equivalent to "c:\progra~1\"

ในระบบปฏิบัติการบางระบบ (เช่น Unix) หมายถึง home-dir (และอาจถูกมองว่าเป็นเส้นทางแบบสัมบูรณ์ แต่ไม่ใช่เส้นทางแบบบัญญัติ)
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* โดยที่ 'usr' เป็นผบ.


2
ในบริบทของการสร้างสคริปต์อาจเป็นเวอร์ชัน Unix ที่มีศูนย์กลาง
Charles Stewart

2
เส้นทาง Unix มักใช้ฟอร์เวิร์ดสแลชแทนแบ็กสแลช
Torben Gundtofte-Bruun

@torbengb จริง ... opps
Eran

1
การแก้ไขเพียงเล็กน้อยสำหรับคำตอบที่ยอดเยี่ยมของ Xenorose ชื่อไฟล์เช่น "progra ~ 1" ไม่ใช่สำหรับ OS ที่เก่ากว่า ระบบ Windows 7 ของฉันยังคงใช้งานอยู่ (สนใจ dir / x เพื่อดู) นี่คือคุณสมบัติดั้งเดิมที่รองรับซอฟต์แวร์เก่าที่ไม่ทราบชื่อไฟล์ยาว ๆ ในระบบที่ทันสมัย ซอฟแวร์เก่าคิดว่าทุกไฟล์ตาม8.3 เมื่อชื่อไฟล์ใช้ไม่ได้กับการประชุมนี้ระบบไฟล์จะสร้างชื่อที่เข้ากันได้สองชื่อโดยอัตโนมัติ8.3
Isaac Rabinovitch

12

ในระบบไฟล์หลายระบบชื่อไฟล์จะมีเครื่องหมายตัวหนอน (~) ในแต่ละองค์ประกอบของชื่อที่ยาวเกินไปที่จะปฏิบัติตามกฎการตั้งชื่อ 8.3

ที่มา: การตั้งชื่อไฟล์เส้นทางและ Namespaces - ชื่อสั้นและยาว - MSDN

(แยกส่วนหน้าลง ... )


อืมใช้ไม่ได้กับชื่อที่มีจุด (เช่น192.168.1.1หรือsomefile.namewithdot)
Pacerier

5

และถ้าคุณทำการเขียนโปรแกรม ASP.NET มันหมายถึงระดับสูงสุดของเว็บไซต์ มากกว่าการนำทางโดยใช้ ../../images/some_image.jpg (และทำให้ระดับการซ้อนของคุณไม่ถูกต้อง!) คุณสามารถพูดได้ว่า ~ / images / some_image.jpg


2
/images/some_image.jpgควรพาคุณไปที่รูทของเว็บไซต์ใด ๆ tilde มีฟังก์ชั่นอะไรเพิ่มเติมใน ASP.NET?
ซันนี่

7
~ นำคุณไปที่รูทแอปพลิเคชันเว็บซึ่งไม่เหมือนกับรูทเว็บไซต์หากคุณใช้ไดเรกทอรีเสมือน ตัวอย่างเช่นถ้าเว็บไซต์ของคุณติดตั้งอยู่บน myserver ใน myapp ไดเรกทอรีเสมือน ~ / images / myimage.jpg จะแก้เพื่อmyserver / myapp / images / myimage.jpg ดูmsdn.microsoft.com/en-us/library/ms178116.aspx
MCS

1

นี่คือคำแนะนำสองสามข้อที่สามารถช่วยให้คุณเข้าใจได้ดีขึ้น:

$ readlink -f ~

$ echo $HOME

หมายเหตุ: $เป็นการประชุมเพื่อระบุพรอมต์บรรทัดคำสั่งของผู้ใช้มันไม่ได้เป็นส่วนหนึ่งของคำสั่ง


'readlink' ไม่รู้จักว่าเป็นคำสั่งภายในหรือภายนอก
Pacerier

@vtest นั่นเป็นเพราะตัวอย่างในความคิดเห็นนี้มีไว้สำหรับระบบที่ใช้ unix ไม่ใช่ Windows
dudewad

-1

เพิ่มเติมเกี่ยวกับ Windows:

  1. หากชื่อไฟล์ที่ซ่อนเริ่มต้นด้วย '~' Windows Explorer จะประมวลผลเป็นไฟล์ที่ซ่อนของระบบ ข้อมูลเพิ่มเติมในเหตุใดไฟล์ที่ถูกซ่อนด้วยเครื่องหมายตัวหนอนชั้นนำจึงถือว่าเป็นซุปเปอร์ซ่อน

  2. หากชื่อไฟล์ / ไดเรกทอรีสั้น ๆ มี '~' (เช่น "c: \ ololoo ~ 1") เป็นไปได้ที่ชื่อยาวของไฟล์ / ไดเรกทอรีนี้จะยาวเกินความยาวสูงสุด (MAX_PATH = 260) นักพัฒนาควรหลีกเลี่ยงปัญหานี้ด้วยคำนำหน้า "\\? \" (แม้ใน Windows 10 ที่ใหม่กว่าในฐานะผู้ใช้สามารถปิดการใช้งาน "> 260" - การสนับสนุนพา ธ แบบยาวพร้อมกับLongPathsEnabledพารามิเตอร์รีจิสตรีหรือด้วยนโยบายกลุ่ม ตัวอย่างสำหรับวิธีแก้ปัญหานี้โดยใช้ C # สามารถพบได้ในZetaLongPaths แหล่งห้องสมุด

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