Rsync
獲取只有一個特定文件的所有目錄
我在遠端伺服器上有一系列目錄(D1、D2、D3、…),每個目錄包含多個同名文件(f1、f2、f3)。
我在遠端伺服器上有什麼:
D1: f1, f2, f3
D2: f1, f2, f3
D3: f1, f2, f3
。
.
.
我在本地機器上想要什麼:
D1: f1
D2: f1
D3: f1
。
.
.
我需要獲取內部只有 f1 的所有目錄(D1/f1、D2/f1、D3/f1、…)。我知道 SFTP 不支持正則表達式,但有沒有其他方法可以做到這一點?如果這在 SFTP 中是不可能的,有沒有辦法使用 scp 或 rsync 來做到這一點?
該
rsync
命令可以做到這一點rsync --dry-run -avR remoteHost:'/path/to/./D*/f1' /path/to/target
就像 一樣,如果需要
ssh
,該remoteHost
組件可以是remoteUser@remoteHost
。源路徑中的/./
點標記了目錄將包含在副本中的位置。如果您想寫入目前目錄,/path/to/target
可能是這樣。.
例子
mkdir -p /tmp/src/D{1,2,3} /tmp/dst touch /tmp/src/D{1,2,3}/f{1,2,3} rsync -avR localhost:'/tmp/src/./D*/f1' /tmp/dst/ ls -R /tmp/dst