ディレクトリバックアップ用のシェルスクリプト

ディレクトリバックアップ用のシェルスクリプト

私はWindows上でEclipseを実行しており、すべてのプロジェクトのsrcディレクトリを自動的にバックアップしたいと思います。私はcygwinをインストールして簡単なバックアップスクリプトを作成しようとしましたが、ターゲットファイル名を正確に指定するのに問題があります。バックアップはスクリプトの現在のディレクトリになければなりません。

#!/bin/bash


for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
        echo "in folder \"$f\""
        cp -a "$f"/src/ ./????.bak

done

私の考えでは? ? ? ?プロジェクトフォルダです(絶対パスではありません)。ありがとうございます。

答え1

あなたが探しているシェル構造は次のとおりですdirname

for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
    cp -a "$f/src/" "./$(dirname "$f").bak"
done

しかし、実際にはこれは良いバックアップソリューションではありません。コピーが実行されるたびに、以前の状態が削除されます。そしてまったく記録を提供しません。バージョン管理の使用。何でも試してみてください。CVS(1時間で便利な機能を学ぶことができます)。どのバージョン管理システムを選択しても:

  1. リポジトリを作成します。
  2. 既存のファイルをチェックインまたはインポートします。
  3. 小さなタスクを完了するたびにコミットしてください。

答え2

gitやhg(mercurial)などのソースコード管理システムを使用することをお勧めします。プライベートプロジェクトの場合、BitBucketには十分な無料のプライベートプロジェクトリポジトリがあります(プロジェクトの人数が10人未満の場合)。 GitはWindowsでうまく機能し、他の場所と同期できるEGITというEclipseプラグインがあります。プログラミングの場合は、バックアップスクリプトを作成する代わりにこれを実行することをお勧めします。

関連情報