加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – zip命令不工作

发布时间:2020-12-13 18:05:11 所属栏目:Linux 来源:网络整理
导读:我试图使用 shell脚本命令压缩文件.我正在使用以下命令: zip ./test/step1.zip $FILES 其中$FILES包含所有输入文件.但我正在收到如下警告 zip warning: name not matched: myfile.dat 另外还有一件事我观察到一个文件夹中文件列表中的文件最后有上述警告,该
我试图使用 shell脚本命令压缩文件.我正在使用以下命令:
zip ./test/step1.zip $FILES

其中$FILES包含所有输入文件.但我正在收到如下警告

zip warning: name not matched: myfile.dat

另外还有一件事我观察到一个文件夹中文件列表中的文件最后有上述警告,该文件没有被压缩.

任何人都可以解释为什么会发生这种情况?我是shell脚本世界的新手.

解决方法

zip warning: name not matched: myfile.dat

这意味着文件myfile.dat不存在.

如果文件是指向不存在的文件的符号链接,您将收到相同的错误.

正如你所说,$FILES中的最后一个文件是什么,它不会与警告一起添加到zip中.所以我认为创建$FILES的方式有问题.机会在最后一个文件名的末尾有一个换行符,回车符,空格,制表符或其他不可见的字符,导致不存在的东西.尝试这个例子:

for f in $FILES; do echo :$f:; done

我打赌最后一行会不正确,例如:

:myfile.dat :

…或类似的东西,而不是:myfile.dat:最后没有字符:

UPDATE

如果你说这个脚本在运行dos2unix之后开始工作,那么这就证实了每一个人都怀疑的东西,那就是你的$FILES列表的末尾有一个回车.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读