AIX 复制时创建目录

AIX 复制时创建目录

在 AIX 中复制文件时创建不存在的目录的最佳方法是什么?像这样的东西:

ssh server1 'cp -R ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory
ssh server1 'cp -r ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory

~user2/ 目录存在,但 ~user2/bin 目录不存在。

答案1

一种可能性是使用 tar 管道:

(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -x -p -f -)

这使用子 shell 更改到源位置的父目录,然后告诉tar将“log”目录的存档写入标准输出。第二个子 shell 更改为目标的父目录,然后指示tar提取通过管道的标准输入传入的存档。这些tar命令被链接起来,&&仅当相应的命令成功时才执行cd

您可以通过告诉第二个tar简单地打印传入内容来测试这一点;只需将 更改-x-t。使用-pwith-t并不重要,也不会造成伤害:

(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)

相关内容