Tại sao một số tập tin và thư mục bị ẩn?


12

Tôi có thể hiểu lý do của việc ẩn các tập tin và thư mục trong thư mục /home/userđể ngăn người dùng làm rối tung mọi thứ. Tuy nhiên, tôi không thấy như thế nào lý do tương tự có thể được áp dụng cho các file trong /etc, /boot/varthư mục đó là lĩnh vực quản trị viên.

Câu hỏi của tôi là tại sao một số tệp và thư mục bị ẩn khỏi quản trị viên? Thí dụ:

/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
nhìn câu trả lời thứ hai Lý do cho những tệp bạn liệt kê là chúng là những tệp cấu hình không nên thay đổi hàng ngày và luôn có mặt dưới dạng .ssh và .bash_profile để bạn không muốn biết chúng ở đó. Đây chỉ là một quy ước. Các tệp tại spool là các tệp tạm thời giống như nhiều tệp khác mà bạn đã liệt kê để không nên chỉnh sửa thủ công do đó chúng bị ẩn
vfbsilva

3
.ssh và .config luôn được đặt tên như vậy, cho dù chúng nằm trong thư mục chính của người dùng thông thường hoặc thư mục gốc của người dùng gốc. / etc / skel được coi là một nguyên mẫu cho các thư mục chính của người dùng mới và các tệp có cùng tên với chúng trong các thư mục mới được tạo.
Đánh dấu Plotnick

2
Nhưng những tập tin đó không bị ẩn . Các lslệnh chỉ cần không danh sách tập tin bắt đầu với một dấu chấm theo mặc định (xem info ls) - đó là việc thiết kế mảnh đặc biệt của phần mềm.

1
@ illuminÉ: Vậy chính xác thì bạn sẽ định nghĩa "ẩn" như thế nào nếu không phải là "không được hiển thị theo mặc định"? Lưu ý rằng đây không phải là một tài sản ls; đồng thời, việc mở rộng các khối sẽ không bao gồm các tệp đó trừ khi dấu chấm hàng đầu được bao gồm rõ ràng trong mẫu và thông thường các trình quản lý tệp sẽ không hiển thị chúng trừ khi bạn chọn tùy chọn "Hiển thị tệp ẩn" (vâng, tùy chọn này sử dụng thuật ngữ đó).
celtschk

Câu trả lời:


15

Bạn đã giải thích sai lý do chính cho "các tập tin ẩn". Không phải vậy

để ngăn chặn người dùng lộn xộn với mọi thứ.

Mặc dù nó có thể có hậu quả này đối với người dùng rất mới cho đến khi họ tìm hiểu "tệp chấm" là gì ( tệp chấmthư mục dấu chấm có lẽ là thuật ngữ phù hợp và cụ thể hơn "ẩn"). Nói chung, nó không ngăn bạn làm phiền mọi thứ - đó là những gì cho phép. Có lẽ sẽ giúp chỉ ra cho người dùng mới rằng đây là điều họ không nên loay hoay cho đến khi họ hiểu nó dùng để làm gì.

Do đó, bạn có thể nghĩ tiền tố dấu chấm là một loại hậu tố tệp - lưu ý rằng chúng thường không có một trong số đó, mặc dù chúng có thể. Nó cho biết tệp này không được quan tâm để duyệt chung, đó là lý do tại sao lsvà trình duyệt tệp thường không hiển thị. Tuy nhiên, vì đó là tiền tố thay vì hậu tố, nên có phần thưởng được thêm vào, khi bạn hiển thị chúng ( ls -a) theo thứ tự từ điển, để xem tất cả chúng được liệt kê cùng nhau.

Mục đích thông thường của một tệp như thế này là để sử dụng bởi một ứng dụng (ví dụ: cấu hình). Bạn không cần phải sử dụng chúng trực tiếp hoặc thậm chí nhận thức được chúng.

Vì vậy, việc "ẩn" này không nhằm mục đích che giấu tập tin theo nghĩa đen của người dùng vì nó nhằm giảm sự lộn xộn và cung cấp một số tổ chức theo khái niệm.


Cảm ơn câu trả lời của bạn. Có phải nó ngụ ý rằng các tập tin này có tầm quan trọng ít hơn và do đó được ẩn để giảm sự lộn xộn?
Câu hỏi tràn

1
Tôi đoán điều đó phụ thuộc vào quan điểm của bạn. Nó nói điều gì đó về tầm quan trọng của tập tin (có khả năng). Chúng được sử dụng trong các thư mục nhà cho các cấu hình của mỗi người dùng , nhưng chúng cũng thường được sử dụng trong các thư mục để chỉ ra cấu hình của mỗi thư mục . Hai ví dụ: Các hệ thống kiểm soát phiên bản như git sẽ sử dụng chúng; khi gitquét một thư mục nhất định, nếu có .gitignoretệp, nó sẽ đọc nó; và khi bạn bắt đầu gdb, nó sẽ đọc một $PWD/.gdbinittệp nếu có ( một ~/.gdbinit; một phương thức phổ biến khác).
goldilocks

4

/etc/skelchứa các tệp sẽ được sao chép vào thư mục chính của người dùng mới, do đó, tên, tất nhiên, giống như trong thư mục chính của người dùng. Điều này giải thích /etc/skel/.bash_profile. Thư mục /rootcũng là một thư mục chính, cụ thể là thư mục chính của người dùng root. Điều này giải thích /root/.ssh/root/.config.

/etc/.pwd.lockdường như là một tập tin khóa. Bạn thường không quan tâm đến các tập tin khóa, do đó, nó có ý nghĩa cho nó bị ẩn.

Đối với các tệp khác, tôi không biết chúng dùng để làm gì, nhưng tôi chắc chắn cũng có một lời giải thích tốt tại sao chúng bị ẩn.

Và tất nhiên, goldilocks đã đúng rằng các dotfiles bị ẩn không nhằm ngăn chặn bất cứ ai gây rối với chúng (ý tưởng cơ bản của Unix là giả định rằng người dùng biết những gì anh ta làm), nhưng để ngăn chặn chúng làm lộn xộn danh sách thư mục của bạn ( mặc dù đối với các tệp cấu hình trong thư mục chính tôi sẽ coi etcthư mục con là một giải pháp tốt hơn).


+1 "tập tin cấu hình trong thư mục chính" là một ý tưởng khá ngu ngốc. Chúng được ẩn chỉ để xuất hiện bất cứ khi nào bạn thực sự không muốn nhìn thấy chúng.
maaartinus

3

Đây có thể là một câu trả lời bị đánh giá cao, nhưng tôi nghĩ lý do chính khiến các tệp chấmthư mục dấu chấm được đánh dấu như thế không phải là để che giấu hoặc làm mờ chúng - Tôi nghĩ rằng chỉ để cho người dùng biết rằng trong các tệp và thư mục đó là của người dùng và chương trình cài đặt có thể được thay đổi bởi chúng hoặc bởi chính các chương trình.

Thực tế là các tệp chấmthư mục dấu chấm được bỏ qua theo mặc định bởi dòng lệnh lsvà từ các khung nhìn trong hầu hết các trình quản lý tệp chỉ là một mặt hàng - bạn không muốn hiển thị nội bộ / chi tiết cho mọi thứ, trừ khi người dùng yêu cầu; nếu người dùng muốn thay đổi cài đặt và anh ấy / cô ấy không thể thực hiện thông qua GUI, thì rất có thể tìm thấy cài đặt mà anh ấy / cô ấy đang tìm kiếm trong một tệp chấm .

ví dụ> bên trong $HOME/.vimrcbạn sẽ tìm thấy cài đặt cấu hình cho vim.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.