bak() (
for file in "$@"; do
bakfile="$file"'.bak'
if [ -e "$bakfile" ]; then
echo 'already exists: '"$bakfile"
bak "$bakfile"
fi
cp "$file" "$bakfile"
done
)
を ~/.bashrc
などに追記すると、
fileA
This is A.
に対して
$ ls
fileA
$ bak fileA
$ ls
fileA fileA.bak
$ echo 'This is A!' > fileA # fileAの中身を This is A! に上書き
$ bak fileA
already exists: fileA.bak
$ ls
fileA fileA.bak fileA.bak.bak
とするとき、それぞれのファイルの中身は、
fileA | fileA.bak | fileA.bak.bak |
---|---|---|
This is A! | This is A! | This is A. |
という調子で、より古いファイルに .bak
がどんどんつきます。