是否可以將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