是否可以指定一个新模式来匹配我希望从操作系统的文件管理器(Explorer、Finder 等)中隐藏的文件和文件夹?
使用某些编辑器(我使用的是 Emacs)时,会自动创建不会默认隐藏在系统正常用户界面中的自动备份。如果能够指定一个新模式来匹配隐藏文件/文件夹,将会非常有用,例如
((\.|_).+)| ; normal hidden files in *nix and dos, respectively
.*~ ; emacs backup files
#.+# ; emacs autosave files
这可能吗?(如果可以)该怎么做?如果可能的话,我希望有适用于所有平台的解决方案。
答案1
您的问题是您想从 Finder 或 Explorer 中隐藏文件。我是个脾气暴躁的老人,所以我不知道这些是什么。我在 xterm 中使用bash
和作为我的“文件资源管理器”。;-]ls
bash
有一个可以设置的环境变量,名为GLOBIGNORE
。我还没有尝试过,但手册页上说,
用冒号分隔的模式列表,定义路径名扩展要忽略的文件名集。如果与路径名扩展模式匹配的文件名也与 GLOBIGNORE 中的某个模式匹配,则会将其从匹配列表中删除。
这应该涵盖bash
其内部的自动完成等内容,但我不知道是否有其他程序关注GLOBIGNORE
环境变量。
ls
也是可配置的。在您的别名中,输入(如果您仍想使用 来查看它们)或ls
的组合。或者您可以使用和 使用将 var设置为不显眼的内容(这样您仍然可以看到它们,但它们不会引起您的注意。)--hide='.*~'
ls -a
--ignore='#.*'
--color=auto
dircolors
LS_COLORS
答案2
不可以,大多数操作系统都无法配置隐藏文件的定义。Windows 使用文件属性,而基于 Unix 的系统则在整个操作系统和工具中对点约定进行硬编码。
但是,可以自定义 Emacs 来隐藏文件。
(setq backup-directory-alist
`((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
`((".*" ,temporary-file-directory t)))
这会将所有 Emacs 备份和自动保存文件放入系统临时目录中,不会影响您的使用。有关更多信息,请参阅备份目录在 Emacs Wiki 上。
其他工具也提供类似的功能,但没有通用的约定,因此您需要检查文档并单独配置每个工具。
答案3
好吧,您可以尝试针对 OSX 或其他 *nix 进行破解。这并不优雅,并且可能会导致其他问题,但您可以简单地编写一个小脚本来监视目录中与您的模式匹配的文件并将它们重命名为点文件。如果您随后将此脚本作为 cronjob 运行,则所有匹配的文件都将重命名为隐藏文件。例如:
#!/bin/env bash
while true; do
find ~/ -name "*~" -o -name "\#*\#"| ## find files matching your pattern
while IFS= read -r n; do ## save each file as $n
d=`dirname $n`; ## $d is the directory $n was found in
b=`basename $n`; ## $b is the name of the file, no path
mv "$n" "$d/.$b"; ## rename it as a hidden file
sleep 1; ## wait one second
done;
done
如果您将其保存为~/renamedot.sh
并使其可执行(chmod a+x ~/renamedot.sh
),然后您可以创建一个 crontab(运行cron -e
),如下所示:
@reboot /Users/your_user/renamedot.sh &
现在,该脚本将作为守护进程运行,并自动将与您的模式匹配的任何文件重命名为隐藏的点文件。
警告:这不是一个好主意。生成这些文件并可能依赖它们的程序将无法再找到它们,因为它们已被重命名。例如,emacs
'sM-X recover-this-file
将不再起作用,因为找不到它的备份。当然,您可以随时手动将其指向重命名的文件,但在其他情况下可能不那么容易。因此,请自行承担风险。
答案4
不是 100% 自动,但也许你可以使用 Pathfinder 6http://cocoatech.com/pathfinder/
您可以使用CMD+获取文件信息I并勾选复选框不可见属性。
该文件将在 Pathfinder、Finder 中消失,但仍存在且未发生任何变化(使用 ls 确认)。我不知道 Pathfinder 在幕后究竟做了什么来使文件不可见,但它确实有效。