4

1 つのファイルを抽出してサーバーにアップロードしたいフォルダーが約 1000 個ありますが、ディレクトリ ツリーを保持する必要があります。

cp */myFile.txt ../newTree

私が基本的にやりたいことですが、各ファイルを保存するのではなく、コマンドのワイルドカードである場所../newTree/myFile.txtにしたいのです。../newTree/*/myFile.txt*cp

このための man ファイルにフラグが見つからなかったので、他に別のユーティリティが必要かもしれないと考えていますcp

4

2 に答える 2

8

rsync を使用:

find ./ -name myFile.txt -print0|rsync -0adv --files-from=- ./ ../newTree/

rsync なし:

newTree にディレクトリを作成するファイルごとに、すべてのファイルを検索し、そこにファイルをコピーできます。

for file in */myFile.txt; do
    dir=$(dirname "$file")
    mkdir -p "../newTree/$dir"
    cp "$file" "../newTree/$dir"
done
于 2011-08-23T16:07:57.020 に答える
4

すべてのファイルをtarアーカイブに保存し、サーバー上で展開します。

于 2011-08-23T16:10:13.067 に答える