ทำไมไฟล์และโฟลเดอร์บางไฟล์จึงถูกซ่อนอยู่?


12

ฉันสามารถเข้าใจเหตุผลของการซ่อนไฟล์และโฟลเดอร์ใน/home/userไดเรกทอรีเพื่อป้องกันผู้ใช้จากสิ่งต่าง ๆ แต่ผมไม่เห็นว่าเหตุผลเดียวกันสามารถนำไปใช้กับแฟ้มใน/etc, /bootและ/varไดเรกทอรีซึ่งเป็นโดเมนของผู้บริหาร

คำถามของฉันคือทำไมไฟล์และโฟลเดอร์บางรายการจึงถูกซ่อนจากผู้ดูแลระบบ ตัวอย่าง:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap


1
ดูคำตอบที่สอง เหตุผลสำหรับไฟล์เหล่านั้นที่คุณแสดงอาจเป็นไฟล์กำหนดค่าที่ไม่ควรเปลี่ยนทุกวันและจะแสดงเป็น. ssh และ. bash_profile เสมอดังนั้นคุณจึงไม่อยากรู้ว่ามันอยู่ที่นั่น ไฟล์ที่สปูลเป็นไฟล์ temp เหมือนกับไฟล์อื่น ๆ ที่คุณระบุไว้ดังนั้นจึงไม่ควรแก้ไขด้วยตนเองดังนั้นจึงถูกซ่อน
vfbsilva

3
.ssh และ. config ตั้งชื่อเสมอว่าไม่ว่าจะเป็นในโฮมไดเร็กตอรี่ของผู้ใช้ทั่วไปหรือโฮมไดเร็กตอรี่ของผู้ใช้รูท. / etc / skel นั้นควรจะเป็นต้นแบบสำหรับโฮมไดเร็กตอรี่โฮมของผู้ใช้, และไฟล์นั้นมีชื่อเหมือนกันในไดเร็กตอรี่ที่สร้างขึ้นใหม่.
Mark Plotnick

2
แต่ไฟล์เหล่านี้จะไม่ซ่อน lsคำสั่งเพียงแค่ไม่ได้ไฟล์รายการเริ่มต้นด้วยจุดโดยค่าเริ่มต้น (ดูinfo ls) - มันออกแบบชิ้นนี้โดยเฉพาะของซอฟแวร์

1
@ illuminÉ: แล้วคุณจะกำหนด "ซ่อน" ถ้าไม่เป็น "ไม่แสดงโดยค่าเริ่มต้น" ได้อย่างไร? โปรดทราบว่านี่ไม่ได้เป็นเพียงคุณสมบัติของls; นอกจากนี้เชลล์การขยายของ globs จะไม่รวมไฟล์เหล่านั้นเว้นแต่จุดนำจะถูกรวมไว้ในรูปแบบและโดยปกติแล้วตัวจัดการไฟล์จะไม่แสดงจนกว่าคุณจะเลือกตัวเลือก "แสดงไฟล์ที่ซ่อน" (ใช่ตัวเลือกใช้คำนั้น)
celtschk

คำตอบ:


15

คุณตีความเหตุผลหลักของ "ไฟล์ที่ซ่อน" ผิด มันไม่ใช่

เพื่อป้องกันผู้ใช้ไม่ให้ยุ่งกับสิ่งต่าง ๆ

แม้ว่าอาจมีผลกระทบนี้สำหรับผู้ใช้ใหม่ ๆ จนกว่าพวกเขาจะเรียนรู้ว่า "ไฟล์ dot" คืออะไร ( ไฟล์dotและไดเรกทอรี dotอาจเหมาะสมกว่าและเฉพาะเจาะจงกว่า "ซ่อน") โดยตัวมันเองไม่ได้ป้องกันไม่ให้คุณยุ่งกับสิ่งต่าง ๆ - นั่นคือสิ่งที่สิทธิ์ใช้สำหรับ มันอาจช่วยระบุผู้ใช้ใหม่ว่านี่คือสิ่งที่พวกเขาไม่ควรยุ่งกับจนกว่าพวกเขาจะเข้าใจสิ่งที่มีไว้สำหรับ

คุณอาจคิดว่าคำนำหน้าดอทเป็นคำต่อท้ายของไฟล์ - สังเกตว่าพวกเขามักจะไม่มีหนึ่งในนั้นแม้ว่าพวกเขาจะทำได้ มันบ่งบอกว่าไฟล์นี้ไม่เป็นที่สนใจสำหรับการเรียกดูทั่วไปซึ่งเป็นสาเหตุlsและไฟล์เบราว์เซอร์มักจะไม่แสดง อย่างไรก็ตามเนื่องจากมันเป็นคำนำหน้าแทนที่จะเป็นคำต่อท้ายจึงมีโบนัสเพิ่มเมื่อคุณแสดงรายการเหล่านี้ ( ls -a) ตามลำดับพจนานุกรมเพื่อดูรายการทั้งหมดอยู่ด้วยกัน

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

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


ขอบคุณสำหรับคำตอบ. มันหมายความว่าไฟล์เหล่านี้มีความสำคัญน้อยกว่าและด้วยเหตุนี้ถูกซ่อนไว้เพื่อลดความยุ่งเหยิง?
คำถามล้นเมื่อ

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

4

/etc/skelมีไฟล์ที่จะคัดลอกไปยังโฮมไดเร็กตอรี่ของผู้ใช้ใหม่, ดังนั้นชื่อจึงเหมือนกันกับในโฮมไดเร็กตอรี่ของผู้ใช้. /etc/skel/.bash_profileนี้จะอธิบาย ไดเรกทอรียังเป็นไดเรกทอรีบ้านคือไดเรกทอรีบ้านของผู้ใช้/root rootนี้จะอธิบายและ/root/.ssh/root/.config

/etc/.pwd.lockดูเหมือนว่าจะเป็นไฟล์ล็อค ตามปกติคุณจะไม่สนใจในไฟล์ล็อคดังนั้นจึงเหมาะสมที่จะซ่อนไฟล์

สำหรับไฟล์อื่น ๆ ฉันไม่รู้ว่าไฟล์เหล่านั้นมีไว้เพื่ออะไร แต่ฉันแน่ใจว่ามีคำอธิบายที่ดีว่าทำไมจึงถูกซ่อน

และแน่นอนว่า goldilocks นั้นถูกต้องที่ dotfiles นั้นถูกซ่อนไว้ไม่ใช่เพื่อป้องกันไม่ให้ใครมายุ่งกับพวกเขา (แนวคิดพื้นฐานของ Unix ก็คือการสมมติว่าผู้ใช้รู้ว่าเขาทำอะไร) แต่เพื่อป้องกันไม่ให้รายชื่อไดเรกทอรีของคุณยุ่งเหยิง ( แม้ว่าไฟล์การกำหนดค่าในไดเรกทอรีบ้านฉันจะถือว่าetcไดเรกทอรีย่อยเป็นทางออกที่ดีกว่า)


+1 "ไฟล์กำหนดค่าในไดเรกทอรีบ้าน" เป็นแนวคิดที่ค่อนข้างงี่เง่า พวกมันจะถูกซ่อนไว้ให้ปรากฏเมื่อใดก็ตามที่คุณไม่ต้องการเห็นพวกเขาจริงๆ
maaartinus

3

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

ความจริงที่ว่าไฟล์ดอทและไดเร็กตอรี่ไดเรกตอรีถูกละเว้นโดยค่าเริ่มต้นโดยบรรทัดคำสั่งlsและจากมุมมองในตัวจัดการไฟล์ส่วนใหญ่เป็นเพียงสินค้า - คุณไม่ต้องการแสดงภายใน / รายละเอียดสำหรับทุกสิ่งยกเว้นผู้ใช้ร้องขอ หากผู้ใช้ต้องการเปลี่ยนการตั้งค่าและเขา / เธอไม่สามารถทำมันผ่าน GUI แล้วเป็นอย่างมากมีแนวโน้มที่จะพบการตั้งค่าที่เขา / เธอจะมองหาในไฟล์ dot

เช่น> ภายในคุณจะพบการตั้งค่าการกำหนดค่าสำหรับ$HOME/.vimrcvim

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