0

初めてLinuxを仕事に使用しています。scp を使用して複数のディレクトリに同じ拡張子を持つ複数のファイルをダウンロードする方法を見つけようとしています。

例えば:

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

すべての *.txt ファイルを 1 つの scp コマンドでダウンロードしたいと考えています。私はそれを機能させることができないようです。

私は次のようなものを試しました:

scp user@server:/server/*/*/*.txt .

-r も試しましたが、うまくいかないようです。誰でも正しいコマンド構文を教えてもらえますか? ありがとうございました!

4

1 に答える 1

0

これは、scpの代わりにsshを使用して行うことができます。

ssh user@server '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
于 2012-10-01T18:49:47.370 に答える