-1

システム プログラミングの課題があり、bash を初めて使用するので、どなたか助けていただけませんか。(私はUbuntuを使用しています)

課題: 2 つのディレクトリを同期する Unix 用の bash スクリプトを作成します。

呼び出し: mySync [-r] / [-i] leftdir rightdir

左側にあるが右側のリストにないすべてのファイルは、左から右にコピーされます。右側のディレクトリにあって左側のディレクトリにないすべてのファイルは、右から左にコピーされます。ファイルが両側に存在する場合、古いバージョンは新しいバージョンに置き換えられます。

  • -r (再帰) 関数が存在する場合、再帰はすべてのサブフォルダーを同期します。

  • -i オプション (インタラクティブ) が存在する場合、既存の (古い) ファイルは、ユーザーが同意した場合にのみ上書きされます。

    本当に助かります。

4

1 に答える 1

0

使用するツール:

  • find-maxdepth:オプションの有無にかかわらず、各ディレクトリに含まれているもの-printfのリストを作成し、ファイルの名前と最終変更時刻の両方を含むリストを印刷できるオプションを使用して (両方とも同じ行に) !)。
  • comm( で使用sort) : で取得したファイル/ディレクトリの 2 つのリストを比較し、find転送する必要があるファイルのみを印刷します ( -1-2および-3オプションを参照)。
  • read残りは、通常の Bash ビルトインです。getopts

関連するマニュアルを参照してください。

于 2013-01-29T10:14:53.270 に答える