Unix 'file' 命令有一个 -0 选项来在文件名后输出一个空字符。据说这很适合与“cut”一起使用。
来自man file
:
-0, --print0
Output a null character ‘\0’ after the end of the filename. Nice
to cut(1) the output. This does not affect the separator which is
still printed.
(注意,在我的 Linux 上,没有打印“-F”分隔符——这对我来说更有意义。)
如何使用“cut”从“file”的输出中提取文件名?
这就是我想要做的:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
<null>
NUL 字符在哪里。
好吧,这就是我想要做的,我想做的是从具有特定 MIME 类型的目录树中获取所有文件名。我使用 grep(未显示)。
我想处理所有合法的文件名,而不是卡在带有冒号的文件名上,例如,在他们的名字中。因此,NUL 会非常好。
我想非切割解决方案也很好,但我不想放弃一个简单的想法。