我在Ubuntu16.04上使用默认压缩工具右键压缩了大量小文件(6102个pdf&txt文件),并将压缩文件上传到网络磁盘。但是,在其他人下载并在Windows上解压缩之后,他们都会得到更少的文件(5809)。我试着重新压缩和重发它,但是它没有起作用。其他人得到的文件仍然较少。然而,我在Ubuntu上解压缩它,它是正确的6102文件。为什么Ubuntu和Windows是不同的呢?ps:我尝试了两个不同的网络磁盘。他们都是5809。
发布于 2020-05-11 06:07:26
据评论,这是由于文件名包含字符*
。此字符还有其他几个角色 (和子字符串)在Windows系统上的文件名中无效。
在Unix系统中,可以使用Perl *
实用程序将所有_
字符更改为例如D4
(下划线),如下所示:
rename -v 'tr/*/_/' ./*'*'*.pdf
这假设PDF文件都位于当前目录中。表达式tr/*/_/
是一个Perl表达式,它在字符串中将所有*
更改为_
(文件名),而文件名全局模式./*'*'*.pdf
将匹配当前目录中的任何文件,该文件的名称中至少有一个*
并带有.pdf
文件名后缀。
在bash
中执行相同操作的简单循环:
for name in *'*'*.pdf; do
mv -i "$name" "${name//'*'/_}"
done
..。将"${name//'*'/_}"
替换为"$name"
,将所有*
字符更改为_
字符。
https://unix.stackexchange.com/questions/585740
复制相似问题