小编s1l*_*v3r的帖子

如何在 ls -a 中隐藏文件/目录,同时在符合 POSIX 的系统中仍然可以访问?

例如,在 FreeBSD 和 ZoL 下的 ZFS 中.zfs,每个 zpool 挂载点内部都有一个魔法目录,您可以使用zfs set snapdir=visible.zfs目录使该目录可见。

让我好奇的是:如果该设置设置为“隐藏”,那么.zfs目录实际上如何从ls -a或 shell 路径自动完成的输出中隐藏,同时仍然可以访问(您仍然可以访问cd它或调用stat它)?

我无法真正理解这个事实,因为我不知何故认为如果某些东西存在并且可以访问它应该被列出ls -a- 即使它本质上只是魔法/虚拟。

任何人都可以解释这是如何工作的吗?是否有符合 POSIX 标准的方式来拥有一个隐藏ls -a但仍可访问的目录?你怎么做呢?

filesystems zfs posix dot-files

12
推荐指数
1
解决办法
1526
查看次数

如何为所有文件类型制作`file`输出换行符类型和编码?

我经常发现自己需要检查文件的编码和换行符类型。

file实用程序似乎非常合适。不幸的是,它不会为所有文件类型输出所需的信息。例如,它不会对.php文件这样做。

例如:

file extra.module.php
Run Code Online (Sandbox Code Playgroud)

extra.module.php:PHP 脚本文本

但是,如果我将文件重命名为.txt并删除 PHP 起始标记,它会同时输出两者。

file extra.module.txt 
Run Code Online (Sandbox Code Playgroud)

extra.module.txt:UTF-8 Unicode C++ 程序文本,带有 CRLF 行终止符

我已经看过手册页,我可以使用-i开关强制输出字符编码,但似乎没有换行符类型的开关。

是否有一个简单的解决方案,而无需先重命名/更改文件?

character-encoding text newlines

6
推荐指数
1
解决办法
366
查看次数

为什么 zfs list 不输出快照的实际大小?

因此,我在基于 zfs 的备份服务器上空间不足,并删除了一些旧备份,但文件系统上的空间随后并未释放。

第一个猜测?周围一定还残留着一些旧的快照。所以我跑了:

zfs list -t snapshot | grep "pool/backups@"
Run Code Online (Sandbox Code Playgroud)

确实有一些:

NAME                                USED    AVAIL   MOUNTPOINT
pool/backups@auto-20140118.1656-5y  4.81M   0       0
pool/backups@auto-20140120.0900-5y  270K    0       0
pool/backups@auto-20140121.0901-5y  270K    0       0
pool/backups@auto-20140122.0902-5y  270K    0       0
pool/backups@auto-20140123.0903-5y  270K    0       0
pool/backups@auto-20140124.0904-5y  270K    0       0
pool/backups@auto-20140125.0905-5y  270K    0       0
pool/backups@auto-20140126.0906-5y  270K    0       0
Run Code Online (Sandbox Code Playgroud)

但是,虽然我本希望看到USED我刚刚删除的大小约为 400G 的快照,但根本没有任何大小值得注意的快照。

我确实花了几个小时试图在其他地方找到问题,当我最终运行时:

zfs destroy -nv pool/backups@
Run Code Online (Sandbox Code Playgroud)

令人惊讶的输出是:

will destroy pool/backups@auto-20140118.1656-5y
will destroy pool/backups@auto-20140120.0900-5y
will destroy pool/backups@auto-20140121.0901-5y
will destroy pool/backups@auto-20140122.0902-5y
will destroy pool/backups@auto-20140123.0903-5y
will destroy pool/backups@auto-20140124.0904-5y
will destroy pool/backups@auto-20140125.0905-5y …
Run Code Online (Sandbox Code Playgroud)

freebsd zfs

3
推荐指数
1
解决办法
6365
查看次数