1

私はいくつかのファイルのコピーを作成するためにubuntuでbashスクリプトを書き込もうとしています。私は小さなAndroidプロジェクトに取り組んでおり、毎週アプリを翻訳しています。私はbashスクリプトを初めて使用するので、ご容赦ください;)

スクリプトでターゲットディレクトリをチェックし、ソースディレクトリに同じフォルダが含まれているかどうかを確認したいと思います。含まれている場合は、構造を保持したまま、ソースフォルダーをターゲットディレクトリにコピー(および必要に応じて上書き)する必要があります。しかし、それらのソースフォルダ内にある可能性のある余分なファイルやフォルダも追加します。

ソースディレクトリにfolder1、folder2、folder3があり、ターゲットディレクトリにはfolder1とfolder2しかないとします。次に、ソースディレクトリからターゲットディレクトリにコピーされたfolder1とfolder2のみが必要です。

ターゲットディレクトリの内容は頻繁に変更されるため、フォルダ/ファイルをコピーする前にチェックする必要があります。

ところで、ソースディレクトリとターゲットディレクトリの両方のフォルダの名前は次のようになります。folder1.apk-拡張子が付いているため、ファイルのように見えます。

私が十分な情報を提供したことを願っています;)

編集:

私はこれをすることになった:

    for dir in `find * -maxdepth 0 -type d`; do
    cp -r -f /source/$dir /destination
    done

それが最善の方法かどうかはわかりませんが、仕事をしているようです;)

4

1 に答える 1

1

多くのオプションがあり、使いやすい (独自のスクリプトを使用する必要がない) rsyncツールを検討することになるでしょう。たとえば、あなたの場合に役立つオプションの1つ:

--existing              skip creating new files on receiver

したがって、次のようにする必要があります。

rsync -vur --existing ~/project/source /mnt/target/

また、ファイルを自動的に同期する必要がある場合、またはデーモンとして使用する場合でも、ネットワークを介して同じ方法でファイルを同期できるという利点の 1 つです。

于 2012-11-23T21:10:25.047 に答える