ファイル編集前の簡易バックアップ
Linuxの設定ファイルなどを編集する際に、編集前のファイルのバックアップを取って置きたいことがある。設定をしくじったりした場合に、元の設定に戻したいからだ。 私は、そのために、次のようなシェルコマンドを自作して利用している。 以下の内容で、~/.functionsを作成する。 bk () { file=${1##*/}; dir=${1%${1##*/}}; ( if [ "$dir" = "" ]; then true; else if [ -d "$dir" ]; then echo cd $dir; cd $dir; else echo "No such directory: $dir "; return 1; fi; fi; if [ -f "$file" ]; then mkdir -p .bk; echo cp -p $file .bk/$file.$(date +"%Y%m%d%H%M" -r $file); cp -p $file .bk/$file.$(date +"%Y%m%d%H%M" -r $file); else echo "No such file: $file "; fi ) } この関数は、以下のような動作をするものである。 バックアップを取りたいファイルが存在するディレクトリに.bk/とサブディレクトリを作成する。 ファイルの最終変更日時(mtime)をサフィックスにもつコピーを作成する。 使用例 ktaka@hana:~$ . ~/.functions ktaka@hana:~$ ls -la /home/ktaka/hello -rw-r--r-- 1 ktaka ktaka 1048576000 May 27 20