在 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
。使用-p
with-t
並不重要,也不會造成傷害:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)