2012-10-01 67 views
0

我第一次使用linux進行工作。我想弄清楚如何使用scp在多個目錄下使用相同的擴展名下載多個文件。scp從多個目錄下載多個文件

例如:

/server/directoryA/directoryA1/nameA.txt 
/server/directoryA/directoryA2/contactA.txt 
/server/directoryA/directoryB1/nameB.txt 
/server/directoryB/directoryB2/contactB.txt 

我想下載所有的* .txt文件在一個scp命令。我似乎無法得到它的工作。

我想是這樣的:

scp [email protected]:/server/*/*/*.txt . 

我試着用-r太多,但似乎並不奏效。任何人都可以將我指向正確的命令語法?謝謝!

回答

0

爲此,您可以使用SSH而不是SCP的:

ssh [email protected] 'find /server/ -name "*.txt" -print0 | xargs -0 tar -cO' | tar -xivf - -C . 

這將複製所有* .TXT到當前目錄,但它會複製目錄結構,所以,如果你想「」只是TXT文件,而目錄結構則需要通過所有下載的TXT文件移動到當前目錄:

find -name "*.txt" -print0 | xargs -0 -I {} cp {} . 

,然後取出空目錄結構:

rm ./server -r