【发布时间】:2021-10-14 13:57:49
【问题描述】:
我想在 julia 中压缩一个文件夹:
tar -cvf - "source" | pigz -k -9 > "source.tar.xz"
source 是一个文件夹
我在朱莉娅试过这个:
run(pipeline(`tar -cvf - "2001_ A Space Odyssey"` , `pigz -k -9 \> "2001_ A Space Odyssey.tar.xz"`))
但它没有用。我收到以下错误:
pigz: skipping: > does not exist
pigz: skipping: 2001_ A Space Odyssey.tar.xz does not exist
2001_ A Space Odyssey/
2001_ A Space Odyssey/cover.jpg
ERROR: LoadError: failed process: Process(`pigz -k -9 '>' '2001_ A Space Odyssey.tar.xz'`, ProcessExited(1)) [1]
在 Julia 中我该怎么做?
【问题讨论】:
-
这可能会有所帮助...stackoverflow.com/a/34093251/2836621
-
当 Julia 运行命令时,它不会进行任何类似于 shell 的解析——一旦它插入变量,它就会盲目地将每个参数传递给命令。相比之下,bash 在评估之前解析其输入,当它看到
>时,它会在评估之前将其解析为重定向(|、&&等也是如此)。换句话说,>是 Julia 中不存在的 shell 语法;要实现相同的行为,请将参数传递给run。
标签: shell command julia pipeline external