-bオプションで "cp"コマンドを使用できますが、バックアップファイルがすでに存在する場合は失敗しますか?

-bオプションで

cp -bファイルをターゲットにコピーするために使用したいです。ターゲットパスがすでに存在する場合は、ターゲットパスのバックアップファイルを作成することもできます。しかし、もしバックアップファイルcpすでに存在し、エラーのために失敗したいです。

私はそれを-n破壊を避けるために使用できることを知っています。ターゲットファイルを削除しましたが、破棄を拒否したいと思います。サポート文書。

これを行う方法はありますか?私はcpLinuxでGNUを使用していますが、利用可能なPOSIXオプションがない場合は、Linux関連の回答を喜んで受け入れます。

ベストアンサー1

GNUを使用してバックアップファイルが破損するのを防ぐために、cp番号付きのバックアップを使用できます。

cp --backup=t  source destination

これにより、バックアップを上書きせずに追加のバックアップが作成されます。

はい

たとえば、2つのファイルを含むディレクトリを考えてみましょう。

$ ls
file1  file2

それでは、file1をfile2にコピーしてみましょう。

$ cp --backup=t file1 file2
$ ls
file1  file2  file2.~1~

ご覧のとおり、バックアップが完了しました。

もう一度コピーしてみましょう:

$ cp --backup=t file1 file2
$ ls
file1  file2  file2.~1~  file2.~2~

別のバックアップが行われました。

文書

man cp「説明」セクションが終了する前に、--backup可能なさまざまなオプションが一覧表示されます。

--suffixまたはSIMPLE_BACKUP_SUFFIXを使用しない限り、バックアップサフィックスは "〜"です。バージョン管理方法は、--backup オプションまたは VERSION_Control 環境変数で選択できます。値は次のとおりです。

none、off
     バックアップを作成しません(--backupが指定されていても)。

number,t は
     番号バックアップを実行します。

既存の
     番号付きバックアップが存在する場合、番号はゼロで、そうでなければ単純

簡単です。
     単純バックアップは絶対にしないでください。

特別な場合には、cp は force オプションと backup オプションが与えられ、SOURCE と DEST が既存の汎用ファイルと同じ名前を持つ場合に SOURCE をバックアップします。

おすすめ記事