原因是我想写一个整洁的脚本,而不是
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
如果不存在,则会创建输出目录。