Làm thế nào tôi có thể ẩn các thư mục hoặc tập tin mà không thay đổi tên của họ?


51

OCD trong tôi muốn các thư mục tôi không muốn ẩn tên vì tôi không tương tác trực tiếp với chúng.

Làm thế nào tôi có thể ẩn các thư mục mà không sử dụng ký hiệu chấm?

Câu trả lời:


79

Giả sử bạn chỉ quan tâm đến việc ẩn các tệp hiển thị trong nautilus, có một lỗi trên Gnome Bugzilla về điều này. Tuy nhiên, hiện tại, lỗi đó vẫn chưa được giải quyết.

Có một cách khác để ẩn các tập tin xuất hiện trong nautilus. Nếu bạn tạo một tệp được gọi .hiddenbên trong thư mục, mọi tên tệp được liệt kê trong tệp sẽ không được hiển thị.

Ví dụ, bên dưới là tệp .hidden mà tôi đã tạo. Tệp này sẽ ẩn bất kỳ tệp hoặc thư mục có tên bhoặc enằm trong cùng thư mục với tệp .hidden.

Ví dụ .hidden File

Dưới đây là một ảnh chụp màn hình của thư mục chứa tệp .hidden. Lưu ý rằng bạn chỉ nhìn thấy ba tập tin: a, c, và f. Bạn không thấy tệp .hidden do '.' ở đầu tên của nó. Thư mục mẫu

Ảnh chụp màn hình bên dưới là của cùng một thư mục như trước đây. Tuy nhiên, lần này, tôi nhấn Ctrl+ Hđể khiến nautilus hiển thị các tệp và thư mục ẩn. Lưu ý cách có một số tệp bổ sung hiển thị. Bây giờ bạn thấy một số tệp đã bị ẩn trước đó do có tên bắt đầu bằng '.'. Hiện tại cũng có các tệp được gọi là 'b' và 'e', ​​mặc dù không có tên bắt đầu bằng '.', Đã bị ẩn do được liệt kê trong tệp .hidden.

Ví dụ thư mục với các tập tin ẩn

Các tệp được đề cập trong tệp .hidden sẽ chỉ bị ẩn trong nautilus. Các công cụ như lsvẫn sẽ hiển thị chúng. Tệp .hidden cũng không được đệ quy. Nó chỉ ảnh hưởng đến các tệp trong cùng thư mục với tệp .hidden nằm trong.

Một số người trên diễn đàn đã đi trước và tạo các tập lệnh cho nautilus để giúp dễ dàng thêm tệp vào tệp .hidden. Các kịch bản đầu tiên bao gồm một lời giải thích tốt đẹp về cách cài đặt và sử dụng các kịch bản, nhưng kịch bản thứ hai là một chút bụi và ngắn hơn. Hãy sử dụng một trong hai kịch bản để làm cho cuộc sống của bạn dễ dàng hơn một chút.


+1. Chỉ cần một lưu ý, NẾU bạn nghĩ rằng bạn phải thêm 'cho tên tệp hoặc thư mục có chứa `` khoảng trống, thì không. Chỉ cần thêm tên tệp hoặc thư mục
Anwar

13

Unix và Linux chỉ hỗ trợ ẩn các thư mục đi kèm với a ..

Nếu bạn thực sự muốn đưa chúng ra khỏi đường đi, nhưng muốn chúng không có .s, hãy đặt tất cả chúng .hiddenvào cùng một thư mục với tệp hoặc thư mục bạn muốn ẩn. .hiddensẽ không bị lộ bởi trình quản lý tệp và các tệp của bạn sẽ không thay đổi tên.


1
tôi rất muốn giữ chúng ở cùng một chỗ :)
myusuf3

1
giải pháp này sẽ giữ chúng ở cùng một chỗ. .hidden thậm chí không phải ở trong thư mục nhà của bạn nếu bạn không muốn. Tôi thường sử dụng nó trên các ổ đĩa di động có tệp cấu hình mà tôi không muốn xem.
jumpnett

1
@jumpnett là chính xác, đặt .hidden ở cùng vị trí với các tệp bạn muốn ẩn và thêm tên tệp / thư mục trong tệp .hidden, mỗi tệp trên một dòng. Hoạt động tuyệt vời!
đảo ngược

3

Từ dòng lệnh, bạn có thể thử một cái gì đó như thế này trong .bash_aliasestệp của mình :

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls $@
}

Điều này thêm một lệnh mới lshhoạt động như thế ls, nhưng ẩn các tệp được liệt kê trong một .hiddenthư mục. (Nó cũng thiếu một số tính năng của nó như danh sách cột và đầu ra được tô màu.)


2

Nếu bạn muốn ẩn các tệp, bạn chỉ còn lại việc đổi tên chúng với .quy ước * NIX. Xin lỗi, nhưng đó là nó.

Tuy nhiên, nếu bạn muốn ẩn nội dung của tệp / thư mục, bạn có thể làm như vậy với quyền truy cập tệp.

Vì vậy, giả sử bạn có một loạt các tệp trong một thư mục được gọi secret_stash, bạn có thể thay đổi nó để chỉ bạn (chủ sở hữu) có r-x(đọc, thực thi) và mọi người khác không có gì ---(không có quyền truy cập). Vì r-xlà các phép tối thiểu cần thiết để xem một thư mục (đọc để truy cập nội dung của nó và thực thi để có thể nhìn thấy chúng), mọi thứ bên trong thư mục đó đều bị ẩn khỏi mọi người một cách hiệu quả root.

LƯU Ý : Tôi đang chạy bản demo này rootvà cố gắng truy cập vào thư mục dưới dạngmyuser

Để làm điều này, bạn chạy chmod 700 dirname(700 phương tiện rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Và đây là:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

Bây giờ và nếu tôi cố gắng truy cập nó từ myuser, cố gắng truy cập vào thư mục hoặc nội dung của nó không thành công:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

Và bây giờ tôi đã nói từ "bí mật" rất nhiều lần nó mất hết ý nghĩa !!


2
Bạn có thể làm cho nó thực sự ẩn với chmod -R 000 secret_stashsau đó sẽ không ai có thể đọc nó!
Marco Ceppi

@Marco Ceppi - BẢO MẬT TUYỆT VỜI!
jathanism

Tất nhiên đây là "Bảo mật" nhiều hơn là "Tối nghĩa" - đó là điều mà OP đang tìm kiếm tôi nghĩ;)
Marco Ceppi

2
@MarcoCeppi: chmod 000 sẽ ẩn tệp khỏi ngay cả chủ sở hữu của tệp, ngoại trừ root, luôn có thể bỏ qua 000. Tuy nhiên, chủ sở hữu tệp vẫn có thể thay đổi quyền của tệp để đọc tệp, vì vậy bạn cần phải cũng thay đổi quyền sở hữu của tập tin thành root để làm cho quyền 000 thực sự có ý nghĩa.
Lie Ryan

2

Tắt 1: nếu bạn muốn ẩn tệp khỏi bất kỳ ai: cài đặt hệ thống phát hiện xâm nhập linux . ( Snort là một ví dụ) Bạn thậm chí có thể ẩn một tệp khỏi "root" nhưng "root" cũng sẽ có thể hoàn nguyên các cài đặt đó.


Nhưng có thể dễ dàng hơn khi chỉ đặt quyền của thư mục chứa tệp thành "root". Thí dụ:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

Và các tập tin 1được ẩn hiệu quả từ xem.

Thư mục sẽ được hiển thị; tập tin sẽ không được nhìn thấy. Mặc dù vậy: "root" sẽ LUÔN có quyền truy cập vào bất kỳ tập tin nào.


Cùng với chattrbạn thậm chí có thể làm cho tập tin bất biến.

sudo su    
chattr + i {file}

và thậm chí "root" không thể thay đổi tập tin -unless- the chattrđược hoàn nguyên (và có "root" có thể làm điều đó).

Bất kỳ bàn phím tắt cho điều đó?

Không, đây là điều bạn cần làm thủ công.


0

Ngoài ra còn có một phần mở rộng cho Nautilus được gọi là nautilus-hide sẽ cho phép bạn ẩn bất kỳ tệp hoặc thư mục nào bằng một cú nhấp chuột phải vào chúng.

Để cài đặt tiện ích mở rộng này: sudo apt-get install nautilus-hidetrong một thiết bị đầu cuối hoặc tìm kiếm "ẩn nautilus" trong Trung tâm phần mềm Ubuntu.

Đừng quên thoát Nautilus sau khi cài đặt: Alt+ F2và nhập nautilus -q.

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.