的-printf标志find不同于通常的内置 from bash。该find版本采用 form 参数,-printf format而内置采用printf <FORMAT> <ARGUMENTS...>,这意味着前者不接受格式说明符后跟参数,而只接受一个定义了选项的字符串。-printf选项提供了find各种序列来描述文件属性。内部传达了与%s内置find -printf的格式规范定义不同的含义。
另外我猜printffrom find(GNU findutils) 命令仅支持 ANSI 颜色代码并且不接受转义序列(与独立 GNU 实用程序上的 GNU shell\e的内置不同),但仅支持八进制等效项(此处 033 假设基于 ASCII 的系统):printfprintf
find . -type l -not -xtype l -printf '\033[1;34m%p\033[m -> %l\n'
您可以将您选择的 ANSI 颜色代码添加到上面。
或者您可以使用$'...'在一些 shell 中找到的引用运算符,包括 GNU shell,它可以识别\e:
find . -type l -not -xtype l -printf $'\e[1;34m%p\e[m -> %l\n'
这不太正确,颜色代码序列和
%p
需要在同一个参数中-printf
而不是在单独的参数中。的
-printf
标志find
不同于通常的内置 frombash
。该find
版本采用 form 参数,-printf format
而内置采用printf <FORMAT> <ARGUMENTS...>
,这意味着前者不接受格式说明符后跟参数,而只接受一个定义了选项的字符串。-printf
选项提供了find
各种序列来描述文件属性。内部传达了与%s
内置find -printf
的格式规范定义不同的含义。另外我猜
printf
fromfind
(GNU findutils) 命令仅支持 ANSI 颜色代码并且不接受转义序列(与独立 GNU 实用程序上的 GNU shell\e
的内置不同),但仅支持八进制等效项(此处 033 假设基于 ASCII 的系统):printf
printf
您可以将您选择的 ANSI 颜色代码添加到上面。
或者您可以使用
$'...'
在一些 shell 中找到的引用运算符,包括 GNU shell,它可以识别\e
:上面的
\e
and\n
被扩展为 ESC 和 NL 字符,然后再传递给find
.