不两者兼而有之-
,而是-@
让你用zip
通过标准输入管道传入的内容替换参数?有什么区别?
答案1
不同之处在于,它将像压缩文件本身一样 -
进行压缩。它将从中读取文件名称列表,并将每个文件添加到存档中。stdin
stdin
-@
stdin
手册页说明差异(但请不要真正使用该-@
示例,它已损坏并且在任何包含IFS
类似空格字符的名称上都会失败):
在 Unix 下,此选项与 find (1) 命令配合使用可发挥强大作用。例如,要存档当前目录及其子目录中的所有 C 源文件:
find . -name "*.[ch]" -print | zip source -@
和
zip 还接受单个破折号(“-”)作为要压缩的文件的名称,在这种情况下,它将从标准输入读取文件,从而允许 zip 从另一个程序获取输入。例如:
tar cf - . | zip backup -