如何让 cpio (gnu、rhel 4) 提取到指定目录?

如何让 cpio (gnu、rhel 4) 提取到指定目录?

原因是我想写一个整洁的脚本,而不是

cd /some/dir
cpio -whatever<somefile
cd -

答案1

GNU cpio 中没有任何东西可以实现这一点。这可能更简洁一些:

(cd /some/dir && cpio -whatever < /some/file)

使用子 shell 括号将保留脚本当前工作目录,而使用 && 将确保仅当您成功将目录更改为目标时才完成 cpio 提取。

答案2

对 TCampbell 所做的工作再补充一点:

(cp /some/file /some/dir && cd /some/dir && cpio -whatever < 文件 && rm -f 文件)

答案3

使用-D选项(cpio (GNU cpio) 2.13,应该在大多数现代发行版中可用):

OPTIONS
   Operation modifiers valid in any mode
       -D, --directory=DIR
              Change to directory DIR.
cat archive | cpio -D /tmp/outdir -idmv

如果不存在,则会创建输出目录。

相关内容