如何使用具有多個子目錄的“rsync -R”或帶有多個檔案的安裝-D?

如何使用具有多個子目錄的“rsync -R”或帶有多個檔案的安裝-D?

是否可以將rsync多個檔案從來源目錄複製到具有多個不存在的子目錄的目標目錄?或install -D將多個檔案使用到不存在的目錄?

我還查看了cp --parents但使用了來源目錄的名稱。是否cp可以選擇一個不存在的目標目錄,並在建立後將所有檔案複製到該目錄?

我有這個問題:僅用一個指令將檔案複製到不存在的目錄(Linux) 合併:如何在複製檔案的同時建立目標目錄?

但是複製一個文件的解決方案,我看的是:

cp /etc/*.conf ~/mytest/ 

其中 mytest 不存在且/etc/*.conf是多個檔案。是否可以使用cp並且僅使用一個命令更好?

答案1

嘗試使用rsync命令:

rsync -av /etc/*.conf ~/mytest

一般來說你可以使用

rsync -av In/*conf Out/NewDir

之前的情況是:

In
├── d1.conf
├── d2.conf
├── d3.txt
├── Sub_In_1
└── Sub_In_2.conf
    └── SubIn2.Files

Out
└── Out_OldFiles

命令之後將是

Out
├── NewDir
│   ├── d1.conf
│   ├── d2.conf
│   └── Sub_In_2.conf
│       └── SubIn2.Files
└── Out_OldFiles

在這種情況下,您不僅選擇常用文件*.conf,甚至選擇目錄Sub_In_2.conf。您將把所有選擇(檔案和目錄)複製到NewDir該目錄下新建立的目錄中Out

該選項-a甚至包括 -r 選項(遞歸到目錄)

  -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

筆記

  • 遞歸選項rsync-r(並不是-R)。
  • -r 和 -R中cp對應相同的選項。
  • 該選項-v不是必需的,它僅提供一些更多資訊。
  • rsync甚至可以在用於host1來源主機和host2目標主機的兩台不同電腦之間使用。

最後一個指令是

rsync  -av host1:InputDir host2:OutputDir/NewDirThatDidNotExists

相關內容