ตัวอย่างเช่นในMy Documents
มีโฟลเดอร์ต่อไปนี้:
.ssh
.subversion
นี่เป็นรูปแบบของการตั้งชื่อที่ฉันไม่รู้หรือเปล่า?
ตัวอย่างเช่นในMy Documents
มีโฟลเดอร์ต่อไปนี้:
.ssh
.subversion
นี่เป็นรูปแบบของการตั้งชื่อที่ฉันไม่รู้หรือเปล่า?
คำตอบ:
หลักการตั้งชื่อนี้มาจากระบบปฏิบัติการที่คล้าย Unix (เช่น Linux หรือ OS X) ซึ่งหมายถึงไฟล์หรือไดเรกทอรี "ซ่อน" มันใช้งานได้ทุกที่ แต่การใช้งานหลักคือการซ่อนไฟล์การกำหนดค่าในโฮมไดเร็กตอรี่ของคุณ (เช่น~/.cache/
หรือ~/.plan
- มักเรียกว่า "dotfiles")
Dotfiles อาจเรียกว่า Unix แบบดั้งเดิมเทียบเท่ากับไดเรกทอรี "AppData" ใน Windows (โปรแกรม Linux จำนวนมากกำลังถูกเปลี่ยนไปตามข้อกำหนดไดเรกทอรีฐาน XDG การย้ายการกำหนดค่าไปยัง~/.config/
และข้อมูลอื่น ๆ ไปยัง~/.cache/
& ~/.local/share/
- สิ่งนี้ทำให้คล้ายกับAppData\Roaming
และAppData\Local
)
คุณมีสิ่งเหล่านี้.ssh
และ.subversion
ไดเรกทอรีบน Windows เพราะคุณใช้บางโปรแกรม - โดยเฉพาะOpenSSHและการโค่นล้ม - ที่ได้รับการพอร์ตเพื่อใช้ API ระบบ Windows แทนที่จะเป็น POSIX แต่ยังไม่ได้ปรับสำหรับการประชุม Windows อื่น ๆ
บางครั้งการปรับตัวนี้ถูกข้ามไปโดยเจตนาเพื่อทำให้ชีวิตง่ายขึ้นสำหรับผู้ที่ใช้สภาพแวดล้อมแบบ Unix เช่น Cygwin บนระบบ Windows ตัวอย่างเช่น Cygwin ติดตั้งชุดเครื่องมือมาตรฐานแบบ Unix like like ls
ซึ่งละเว้นการตั้งค่าสถานะ "hidden" ของ Windows และให้เฉพาะ.dotfile
ชื่อเท่านั้น นอกจากนี้การใช้ตำแหน่งเดียวกัน (เช่น<home>/.ssh
) สามารถทำให้การซิงโครไนซ์การกำหนดค่าระหว่างคอมพิวเตอร์ Windows และ Linux / BSD / OSX ง่ายขึ้น
นอกจากนี้: โดยทั่วไปไฟล์เหล่านี้อยู่ในโฮมไดเร็กตอรี่ของผู้ใช้เช่นบน Linux หรือบน Windows 7+ เป็นเรื่องยากสำหรับพวกเขาที่จะใส่ไว้ในไดเรกทอรีย่อย "Documents" หรือ "My Documents"/home/name/.ssh
C:\Users\name\.ssh
ตามที่ Rob Pike เขียนใน Google+นี่เป็นคุณลักษณะที่ไม่ได้ตั้งใจ:
นานมาแล้วในขณะที่การออกแบบระบบไฟล์ Unix นั้นกำลังดำเนินการอยู่รายการ
.
และ..
ปรากฏขึ้นเพื่อให้การนำทางง่ายขึ้น ฉันไม่แน่ใจ แต่ฉันเชื่อว่า..
ในระหว่างการเขียนเวอร์ชัน 2 เมื่อระบบไฟล์กลายเป็นลำดับขั้น (มีโครงสร้างที่แตกต่างกันมากในช่วงต้น) อย่างไรก็ตามเมื่อมีการพิมพ์ ls ไฟล์เหล่านี้จะปรากฏขึ้นดังนั้นทั้ง Ken หรือ Dennis จึงเพิ่มการทดสอบอย่างง่ายให้กับโปรแกรม มันอยู่ในแอสเซมเบลอร์ แต่โค้ดที่เป็นปัญหานั้นเทียบเท่ากับสิ่งนี้:
if (name[0] == '.') continue;
ข้อความนี้สั้นกว่าที่ควรจะเป็นสักนิด
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
แต่เดี๋ยวก่อนมันง่าย
ผลสองสิ่ง
ครั้งแรกมีการตั้งค่าแบบอย่างที่ไม่ดี โปรแกรมเมอร์ขี้เกียจอื่น ๆ จำนวนมากแนะนำบั๊กด้วยการทำให้เข้าใจง่ายเหมือนกัน ไฟล์จริงที่เริ่มต้นด้วยจุดมักจะถูกข้ามเมื่อพวกเขาควรจะนับ
อย่างที่สองและที่แย่กว่านั้นคือความคิดเกี่ยวกับไฟล์ "ซ่อน" หรือ "จุด" เป็นผลให้โปรแกรมเมอร์ที่ขี้เกียจเริ่มวางไฟล์ลงในโฮมไดเร็กตอรี่ของทุกคน ฉันไม่มีสิ่งที่ติดตั้งบนเครื่องที่ฉันใช้เพื่อพิมพ์สิ่งนี้ แต่โฮมไดเร็กตอรี่ของฉันมีไฟล์ประมาณร้อยจุดและฉันไม่รู้ด้วยซ้ำว่าส่วนใหญ่ของพวกเขาคืออะไรหรือพวกเขายังต้องการ . การประเมินชื่อไฟล์ทุกครั้งที่ผ่านโฮมไดเร็กตอรี่ของฉันนั้นช้าลงด้วยตะกอนที่สะสมนี้
ls
มี-a
ตัวเลือกเพื่อแสดงรายการไฟล์ทั้งหมด
LOGIN.COM
หรือในไดเรกทอรีที่บ้านของคุณDECW$MAIL.DAT
(ฉันไม่แน่ใจว่าระบบอื่น ๆ ที่เป็นที่นิยมในเวลานั้น) Unix เพิ่งถูกสร้างขึ้น มันไม่ได้มีการประชุมใด ๆ เลย
..
"up dir"; Microsoft ลงโฆษณาจริง ๆ "คุณสมบัติ Unix ขั้นสูง" เหล่านี้