【发布时间】:2025-12-24 15:00:11
【问题描述】:
问:我在 unix 平台上使用脚本,我必须找出一个目录中的所有文件,该目录从现在开始大约 8 小时。
我正在使用以下命令按照上述条件检索文件:
find . name "*.dat" -mmin -480
但是很少有文件在文件名本身中有特殊字符(双问号)??" 并使用上面的命令,文件名中带有?? 的文件被分成两行两部分.
例如:
file name : aabb??cc.dat
上面的命令运行后,结果如下:
$./aabb
$cc.dat
($这里是unix命令提示符) 有人可以建议上述命令中的更正或处理此异常的正确方法。
【问题讨论】:
-
find 不会拆分文件名。显示脚本的其余部分。
-
没有“特殊字符”这样的东西。只有字符。很多这样的虫子。
-
@MarcB 我在这里的目的不是拆分文件。我想在具有完整文件名的目录中搜索文件,但此文件(aabb??cc.dat)拆分为两个名称,这对我来说是个问题。
-
然后显示文件名是如何被分割的。
find不会拆分文件名,所以它一定是你正在做的事情。 -
你在哪里看到问号?在文件中还是在终端中?您的终端是否以 UTF-8 作为其代码集运行?如果是这样,则使用其他代码集(例如 ISO 8859-15)创建的文件名将无法正确显示。我认为您应该通过十六进制转储程序(或
od -c,或类似的东西)运行find的输出,并查看它标识问号出现位置的字节。这可能会告诉你很多关于这个问题的信息。 0x80..0xC1 或 0xF5..0xFF 范围内的字节尤其成问题。如果 UTF-8 是一个因素,任何超过 0x80 的字节都可能成为问题。