有没有办法让“find”不引用 -printf 的结果

有没有办法让“find”不引用 -printf 的结果

我想使用find命令 with-printf '%h\0'来打印前导目录,以 nul 字符分隔。由于我使用的是 \0,所以我不需要也不希望 find 引用结果,如 find 联机帮助页的“UNUSUAL FILENAMES”部分中所述。

有没有什么方法可以告诉 find “我真的知道我在做什么”,并且在使用该选项时不进行引用-printf

答案1

find大概您想捕获管道中的输出。在这种情况下,不会启用引用(它仅用于输出到终端)。

例子:

mkdir $'two line\ndirectory'
( cd two* && touch file )

然后,

find two* -printf '%h\n'

.
two line?directory

但,

find two* -printf '%h\n' | cat

.
two line
directory

这在中进行了解释man find(GNU) 部分中进行了解释不寻常的文件名:

-printf,-fprintf如果输出不发送到终端,则按原样打印。

否则(即到终端),

[...] 指令%f%h%l%p%P引用。

我应该注意到,无论文档如何写,我都无法看到“引用”的文件或目录名。?根据上面的示例,我只能看到非打印字符被替换为。

相关内容