解压后缺少一些文件

解压后缺少一些文件

我在Ubuntu 16.04上使用默认压缩工具右键压缩了大量小文件(6102个pdf&txt文件)并将zip文件上传到网盘。然而,当其他人下载并在 Windows 上解压后,他们得到的文件都减少了(5809)。我尝试重新压缩并重新发送,但没有成功。其他人获得的文件仍然较少。不过我在Ubuntu上解压,是6102个文件。为什么 Ubuntu 和 Windows 之间有所不同? ps:我尝试了两个不同的网盘。都是5809。

答案1

根据评论,这是由于文件名包含字符*.这个角色,和其他一些角色一起(和子字符串),在 Windows 系统上的文件名中无效。

在您的 Unix 系统上,您可以使用 Perl实用程序将所有*字符更改为例如(下划线) ,如下所示:_rename

rename -v 'tr/*/_/' ./*'*'*.pdf

这假设 PDF 文件全部位于当前目录中。该表达式tr/*/_/是一个 Perl 表达式,它将所有内容更改*_字符串(文件名),并且文件名通配模式将匹配当前目录中名称中./*'*'*.pdf至少有一个且带有文件名后缀的任何文件。*.pdf

一个简单的循环在 中执行相同的操作bash

for name in *'*'*.pdf; do
    mv -i "$name" "${name//'*'/_}"
done

...其中"${name//'*'/_}"将被替换为"$name"所有*字符都更改为_字符。

相关内容