มีอะไรพิเศษเกี่ยวกับไดเรกทอรีที่ชื่อขึ้นต้นด้วยจุด


25

ฉันสงสัยว่าความแตกต่างระหว่างสองสิ่งนี้คืออะไร:

~/somedirectory/file.txt

และ

~/.somedirectory/file.txt

เป็นเรื่องยากมากที่จะถามสิ่งนี้ใน Google เนื่องจากฉันไม่รู้วิธีอธิบาย.เมื่อฉันไม่รู้ด้วยซ้ำว่าจะเรียกมันว่าอะไร แต่ใครบางคนสามารถอธิบายความแตกต่างระหว่างการรวมจุดและไม่รวมมันได้หรือไม่

คำตอบ:


18

ภายใต้ระบบที่เหมือนกับระบบยูนิกซ์ไดเรกทอรีทั้งหมดมีสองรายการ.และ..ซึ่งย่อมาจากไดเรกทอรีเองและผู้ปกครองตามลำดับ รายการเหล่านี้ไม่ค่อยน่าสนใจนักดังนั้นควรlsซ่อนและใช้สัญลักษณ์แทนเชลล์เช่น*ไม่รวม โดยทั่วไปแล้วlsและไวด์การ์ดจะซ่อนไฟล์ทั้งหมดที่มีชื่อขึ้นต้นด้วย.; นี่เป็นวิธีง่ายๆในการยกเว้น.และ..และให้ผู้ใช้สามารถซ่อนไฟล์อื่น ๆ จากรายชื่อ นอกเหนือจากการถูกแยกออกจากรายชื่อไม่มีอะไรพิเศษเกี่ยวกับไฟล์เหล่านี้

Unix เก็บไฟล์การกำหนดค่าต่อผู้ใช้ในโฮมไดเรกทอรีของผู้ใช้ หากไฟล์การกำหนดค่าทั้งหมดปรากฏในรายชื่อไฟล์โฮมไดเรกทอรีจะเต็มไปด้วยไฟล์ที่ผู้ใช้ไม่สนใจทุกวัน ดังนั้นแฟ้มการกำหนดค่าเสมอเริ่มต้นด้วย.: โดยทั่วไปแฟ้มการกำหนดค่าสำหรับการประยุกต์ใช้ Foo ที่เรียกว่าสิ่งที่ต้องการหรือ.foo .foorcด้วยเหตุนี้แฟ้มการกำหนดค่าผู้ใช้มักจะเป็นที่รู้จักกันเป็นไฟล์ dot


1
"มากกว่าปกติlsและสัญลักษณ์ซ่อนไฟล์ทั้งหมดที่มีชื่อเริ่มต้นด้วยการ.นี้เป็นวิธีที่ง่ายในการยกเว้น.และ..และให้ผู้ใช้สามารถซ่อนไฟล์อื่น ๆ จากรายชื่อ." เสียงนี้เช่นต่อไปนี้: แนวคิดของการซ่อนไฟล์ / ไดเรกทอรีที่เริ่มต้นด้วยจุดได้จริง. ..ปรากฏซ่อน แต่ต่อมาผู้คนตระหนักว่าการซ่อนไฟล์ / ไดเร็กตอรี่บางตัวนั้นมีค่าอยู่และด้วยเหตุนี้พวกเขาจึงเริ่มใส่จุดที่จุดเริ่มต้นของไฟล์ที่พวกเขาต้องการซ่อน เป็นเช่นนั้นจริงหรือเป็นเพียงการเก็งกำไร?
Utku

3
@Utku ที่จริงมันเป็นรอบวิธีอื่น ๆ เป็นอย่างน้อยในตอนแรก: พัฒนาเดิมตั้งใจจะซ่อนเท่านั้น.และ..แต่ทำผิดพลาด อย่างไรก็ตามเป็นไปได้ว่าเขาถูกไล่ออกจากการแก้ไขเพราะผู้ใช้บางคนพบว่ามันมีประโยชน์และเหตุผลที่ไฟล์การกำหนดค่าของผู้ใช้เริ่มต้น.นั้นแน่นอนว่าพวกเขาจะไม่ยุ่งเหยิงเอาท์พุทของlsในโฮมไดเรกทอรี ฉันคิดว่าเรามีคำถามเกี่ยวกับเรื่องนี้ที่นี่ แต่ฉันไม่พบมันอาจจะผิดพลาด
Gilles 'หยุดชั่วร้าย'

15

ไดเรกทอรีที่ขึ้นต้นด้วยจุด.นั้นถือว่าถูกซ่อนไว้ นั่นหมายความว่า:

  • ~/somedirectoryและ~/.somedirectoryเป็นไดเรกทอรีที่แตกต่างกัน นั่นคือถ้า~/somedirectoryมีอยู่และคุณทำmkdir ~/.somedirectoryคุณจะไม่ล้มเหลวด้วยFile Existsข้อความ

  • lsคำสั่งจะไม่แสดงไดเรกทอรีที่เริ่มต้นด้วย.

  • ls -aจะแสดงไดเรกทอรีทั้ง


6
ls -A แสดงไฟล์และไดเรกทอรีที่ขึ้นต้นด้วย แต่ไม่รวมถึง และ .. รายการ
Julian

7

สำหรับรายละเอียดเกี่ยวกับระบบไฟล์ Unix ให้ตรวจสอบมาตรฐานตรวจสอบมาตรฐานโดยเฉพาะไฟล์จุดจะใช้สำหรับไฟล์การกำหนดค่าในไดเรกทอรีผู้ใช้และหากโปรแกรมมีมากกว่าหนึ่งมันควรจะใส่พวกเขาลงในไดเรกทอรีจุด

นี้จะซ่อนไฟล์จากผู้ใช้จนกว่าพวกเขาต้องการที่จะพบพวกเขา ด้วยวิธีนี้พวกเขาไม่ได้เข้าไปในทางและเครื่องมือจะไม่ไปยุ่งกับพวกเขาโดยไม่ตั้งใจ


4

การนำ "." ในไดเรกทอรีหรือชื่อไฟล์ทำให้ไดเรกทอรีหรือไฟล์นั้นถูกซ่อนเมื่อทำlsคำสั่ง


1
คุณสามารถดูไฟล์ทั้งหมดที่ขึ้นต้นด้วย "." ด้วย ls -a
Sardathrion - Reinstate Monica

1

เช่นเดียวกับ @DaveNay ที่ได้กล่าวไปแล้วช่วงเวลานั้นจะทำให้ไฟล์หรือไดเรกทอรีถูกซ่อนอยู่

สำหรับคำถามโดยนัยที่สองของคุณนี่คือวิธีที่คุณค้นหาใน google:

เพียงพิมพ์ในช่องค้นหา: ระยะเวลา linux ก่อนชื่อ

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