使用 find 查找名称中包含不可打印字符的文件
Using find to locate files that have non-printable characters in their names
在一个文件夹中,有很多文件,其文件名中包含不可打印和特殊字符,例如“\201”。如果我直接输入它。我不会找到他们。我怎样才能找到它们?
文件显示在bash
文件显示在 emacs 中。
对于你的例子“\220Senno.flac”,你需要引用\
:
find . -iname '\220*'
-iname
采用 shell 模式,而不是文字字符串,因此 \
需要转义。
是的,至少使用 GNU find
,您可以搜索包含不可打印字符的名称。
不可打印字符集取决于您的语言环境。如果您指定您正在使用 C 语言环境,则不可打印的字符是那些 ASCII 代码 < 32 或 ASCII 代码 >= 127 的字符。
LC_ALL=C find -name '*[^[:print:]]*'
这里[^[:print:]]
表示任何不可打印的字符。
在一个文件夹中,有很多文件,其文件名中包含不可打印和特殊字符,例如“\201”。如果我直接输入它。我不会找到他们。我怎样才能找到它们?
文件显示在bash
文件显示在 emacs 中。
对于你的例子“\220Senno.flac”,你需要引用\
:
find . -iname '\220*'
-iname
采用 shell 模式,而不是文字字符串,因此 \
需要转义。
是的,至少使用 GNU find
,您可以搜索包含不可打印字符的名称。
不可打印字符集取决于您的语言环境。如果您指定您正在使用 C 语言环境,则不可打印的字符是那些 ASCII 代码 < 32 或 ASCII 代码 >= 127 的字符。
LC_ALL=C find -name '*[^[:print:]]*'
这里[^[:print:]]
表示任何不可打印的字符。