at_shiita.ishigaki
2021年10月19日 9時18分
cpコマンドはコピー先のファイルが既に存在している場合、通常上書きをしてしまいます。
[armadillo ~]# echo hoge > hoge [armadillo ~]# echo fuga > fuga [armadillo ~]# cat fuga fuga [armadillo ~]# cp hoge fuga [armadillo ~]# cat fuga hoge
cpコマンドで上書き時にバックアップを取るには-bオプションを使用します。
[armadillo ~]# cp -b hoge fuga [armadillo ~]# ls fuga fuga~ hoge [armadillo ~]# cat fuga hoge [armadillo ~]# cat fuga~ fuga
cpコマンドの引数に同じファイルを与え、-bオプションを使用することで、簡単にバックアップを作成することが来ます。
また、同じファイル名で保存する場合エラーが表示されるため、-fオプションも使用します。
※ここでは例として、hogeのバックアップを取ります。
[armadillo ~]# ls hoge [armadillo ~]# cp -b hoge{,} cp: 'hoge' and 'hoge' are the same file [armadillo ~]# cp -fb hoge{,} [armadillo ~]# ls hoge hoge~
コピー先のをsuffixを変更する場合はSオプションを使用します。
※ここでは例として、suffixを_に変更します。
[armadillo ~]# ls hoge [armadillo ~]# cp -fb -S_ hoge{,} [armadillo ~]# ls hoge hoge_
数字を1,2,3…と増やしていき、バックアップを取る場合は--backup=numberedオプションを使用します。
[armadillo ~]# cp -f --backup=numbered hoge{,} [armadillo ~]# ls hoge hoge.~1~ [armadillo ~]# cp -f --backup=numbered hoge{,} [armadillo ~]# ls hoge hoge.~1~ hoge.~2~