[英]zip multiple files with whitespace shell script
我需要将多个文件压缩成一个zip文件。 我还需要保留zip文件中文件的目录结构。 要压缩的文件将位于具有完整路径的单独文本文件中。 我将文本文件中的文件名读入变量并将其传递给zip命令。 这是我使用的命令。
zip -r $EXP_DIR/Export_files.zip $BASE_DIR -i "$file_name"
它适用于单个文件。 但是当我添加多个文件时,它会失败并出现以下错误。
zip error: Nothing to do! (zip file name)
我不明白我在这里失踪了什么。 任何建议将不胜感激。
谢谢,古娜
1) myfile.txt
包含由换行符分隔的文件名
zip out.zip -@ < myfile.txt
2) myfile.txt
包含由空格分隔的文件名(文件名中不允许有空格!)
zip out.zip -@ < <(tr ' ' '\n' < myfile.txt)
来自man zip
:
如果文件列表指定为
-@
[Not on MacOS],则zip 从标准输入而不是命令行 获取 输入文件 列表 。
例如,zip -@ foo
将在foo.zip
stdin上存储每行一个列出的文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.