如何隐藏目录或文件而不更改其名称?


51

我的OCD希望隐藏我不喜欢的目录,因为我不直接与它们交互。

如何隐藏目录而不使用点号?

Answers:


79

假设您只关心隐藏文件以防止它们显示在nautilus中,则GNOME Bugzilla上有一个关于此的错误。但是,当前,该错误尚未解决。

还有另一种隐藏文件的方法,使其不显示在nautilus中。如果您.hidden在目录内部创建一个文件,则不会显示该文件中列出的任何文件名。

例如,下面是我创建的.hidden文件。该文件将命名为隐藏任何文件或文件夹be位于同一目录中.hidden文件。

示例.hidden文件

下面是包含.hidden文件的文件夹的屏幕快照。请注意,您只能看到三个文件:ac,和f。由于出现“。”,因此看不到.hidden文件。在其名称的开头。 示例文件夹

下面的屏幕快照与以前的文件夹相同。但是,这次,我按Ctrl+ H导致鹦鹉螺显示隐藏的文件和文件夹。注意如何显示几个其他文件。现在,您会看到几个由于名称以'。'开头而被隐藏的文件。现在还存在名为“ b”和“ e”的文件,尽管它们没有以“。”开头的名称,但由于它们在.hidden文件中列出而被隐藏了。

带有隐藏文件的示例文件夹可见

.hidden文件中提到的文件将仅在nautilus中隐藏。类似的工具ls仍会显示它们。.hidden文件也不是递归的。它仅影响与.hidden文件所在目录相同的文件。

论坛上的一些人继续前进,并为nautilus创建了脚本,从而可以更轻松地将文件添加到.hidden文件。第一个脚本很好地解释了如何安装和使用这些脚本,但是第二个脚本更简洁一些。随意使用任一脚本,使您的生活更轻松。


+1。请注意,如果您认为必须添加'包含``空间的文件或文件夹名称,则不是。只需添加文件或文件夹名称
Anwar

13

Unix和Linux仅支持隐藏带有的文件夹.

如果您确实希望摆脱它们,但又不想使用.s,请将它们全部放在.hidden与要隐藏的文件或文件夹相同的目录中。.hidden不会由文件管理器公开,您的文件也不会更改名称。


1
我想将它们保留在同一位置:)
myusuf3

1
该解决方案将使它们保持在原处。如果您不希望,.hidden甚至不必位于您的主文件夹中。我通常在具有不希望看到的配置文件的可移动驱动器上使用它。
jumpnett 2010年

1
@jumpnett是正确的,将.hidden放置在要隐藏的文件的相同位置,然后在.hidden文件中添加文件/目录名称,每行添加一个。很棒!
反转

3

在命令行中,您可以在.bash_aliases文件中尝试以下操作:

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

这会添加一个lsh行为类似于的新命令ls,但会隐藏目录中列出的.hidden文件。(它也缺少一些功能,例如彩色输出和列列表。)


2

如果要隐藏文件,则只能使用.*,如* NIX约定重命名它们。抱歉,就是这样。

但是,如果您想隐藏文件/目录的内容,则可以使用文件权限进行隐藏。

因此,假设您在名为的文件夹中有一堆文件secret_stash,则可以对其进行更改,以便只有您(所有者)拥有r-x(读取,执行),而其他所有人都没有---(访问)。由于这r-x是查看目录(读取以访问其内容并执行以能够看到它们的目录)所需的最低权限,因此该文件夹中的所有内容都对所有人有效地隐藏了,但除外root

注意:我正在以身份运行此演示root,并尝试以身份访问该文件夹myuser

为此,请运行chmod 700 dirname(700表示rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

这里是:

% 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

现在,如果我尝试从访问它myuser,则尝试访问该文件夹或其内容失败:

% 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

现在,我已经说了很多次“秘密”一词,以至于失去了所有含义!


2
您可以将其真正隐藏起来,chmod -R 000 secret_stash然后没人会阅读!
Marco Ceppi

@Marco Ceppi-终极保密!
詹森(Jathanism)2010年

当然,这比“默默无闻”更像是“安全性”,这是OP一直在寻找的东西;)
Marco Ceppi

2
@MarcoCeppi:chmod 000甚至会向文件所有者(根文件除外)隐藏文件,而根文件始终可以绕过000。但是,文件所有者仍可以更改文件的读取权限,因此您需要还将文件的所有权更改为root,以使000权限真正有意义。
Lie Ryan 2012年

2

第一关:如果您想向任何人隐藏文件:安装linux入侵检测系统。(以Snort为例)您甚至可以从“ root”隐藏文件,但“ root”也可以还原这些设置。


但是,仅将保存文件的目录的权限设置为“ root”可能会更容易。例:

 $ 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

并且该文件1有效地从视图中隐藏。

目录将可见;文件将不可见。请注意:“ root”将始终可以访问任何文件。


与一起,chattr甚至可以使文件不可变。

sudo su    
chattr + i {file}

甚至“ root”也不能更改文件,除非将chattr其还原(是的,“ root”可以做到这一点)。

有键盘快捷键吗?

不,这是您需要手动执行的操作。


0

Nautilus的扩展名为nautilus-hide,可让您通过单击鼠标右键隐藏任何文件或文件夹。

要安装此扩展程序: sudo apt-get install nautilus-hide在终端中,或在Ubuntu软件中心中搜索“ nautilus hide”。

安装后不要忘记退出Nautilus:Alt+ F2并输入nautilus -q

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.