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