简洁版本:我希望能够阻止某些文件出现在 的输出中ls
,而无需添加点,从而更改其名称。
长版本:最近,我将一堆脚本和数据文件移到了另一个目录以保持井然有序。我的许多旧脚本都需要访问这些文件,因此我创建了符号链接以实现向后兼容。但是,移动文件的目的是保持原始文件夹干净,所以我不想看到符号链接。但是我怎样才能隐藏它们,而不改变它们的名称(添加点),从而破坏我的旧脚本?
答案1
不幸的是,这是不可能的(除非编写您自己的自定义版本ls
)。最好的办法就是编辑您的脚本。
它是可以防止特定文件名与全局变量的 glob 匹配$GLOBIGNORE
。
$ printf '%s\n' *
foo.txt
bar.txt
baz.txt
$ GLOBIGNORE=foo.txt:baz.txt
$ printf '%s\n' *
bar.txt
如果您确实想要,您可以在您的中设置一个别名.bashrc
,您也可以在其中设置$GLOBIGNORE
上面的变量。
alias myls='ls -d *'
但是,这可能会在某个时候给您带来问题。更好的办法是直接编辑脚本(也许可以使用 sed 批量执行,正如 @terdon 所建议的那样)。
答案2
如果您的 Linux 系统中安装了 nautilus 文件管理器,您可以将它们从文件管理器(nautilus)中隐藏,而无需使其对 CLI 不可见,也无需使用点。
创建包含隐藏文件/文件夹列表的 .hidden 文件。
要使用此功能,只需在包含要隐藏的文件/文件夹的文件夹中创建一个名为“.hidden”(点隐藏)的文件。然后在文本编辑器中打开它,然后在包含“.hidden”文件的文件夹中创建要隐藏的隐藏文件/文件夹的名称列表。
如果不使用“点”,您就无法从 ls 中隐藏文件,但您可以使用 chmod 更改某些用户包含文件的目录的权限,并使他们无法访问该目录。