cp -b(--backup)は正確に何をしますか?

cp -b(--backup)は正確に何をしますか?

明らかな事実を言う前に、バックアップオプションがファイルをバックアップすることを知っています。

しかし、問題は、このcpコマンドが通常ファイルをバックアップすることです。ファイルのコピーがバックアップであると言うこともできます。

より正確に私の質問は次のとおりです。-bこのオプションは、cpコマンドがまだ実行していない操作を実行しますか?

cp(1) のマニュアルページでは、--backupこのオプションについて次のように説明します。

各既存のターゲットファイルのバックアップ

この定義はあまり役に立ちません。デフォルトでは「バックアップするバックアップオプション」と言います。-b何が追加されたかは記載されていません。cp

-b新しいファイル名の末尾にサフィックスを追加する方法を知っています。しかし、他の機能は何ですか?それともそれだ?-bバックアップは、cpファイル名の末尾に何かを追加するコマンドですか?ありがとう

-bPS日常業務でバックアップをするときに主にこの機能を使用しますか?それともただ頑張っていますか-a

答え1

すでに存在する各ターゲットファイルのバックアップコピーを作成します。上書きして失われる可能性があるコンテンツ。

$ mkdir foo; cd foo
$ echo hello > hello.txt
$ echo world > world.txt
$ cp -b hello.txt world.txt
$ ls
hello.txt  world.txt~  world.txt
$ cat world.txt
hello
$ cat world.txt~
world

これがworld.txt~作成されるバックアップファイルです。詳細を見ると、バックアップファイルが実際に名前が変更されたソースファイルであることがわかります。 (つまり、inode番号は同じままで、ファイルに対する権限も同じままです。)

答え2

同じ(GNU coreutils)cpのマンページから:

       --backup[=CONTROL]
              make a backup of each existing destination file

CONTROLしたがって、当然、この資料で定義を探します。

       The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.  The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable.  Here are the values:

       none, off
              never make backups (even if --backup is given)

       numbered, t
              make numbered backups

       existing, nil
              numbered if numbered backups exist, simple otherwise

       simple, never
              always make simple backups

しかし、他の機能は何ですか?

いいえ。

PS日常業務でバックアップを実行するときは、通常-bを使用しますか?それとも単に-aを使用しますか?

まあ。-b実際にデータをバックアップするためのひどいソリューションのように聞こえます。バックアップではない状況でのデータの破損を防ぐことがより重要です。だから、いいえ、私はそうでした。いいえ使用される-b

バックアップの場合は実際には状況によって異なりますが、個人/小規模のファイルシステムの場合、ファイルシステムのスナップショット(ZFS経由または下の薄いLVMを使用)は本当にうまく機能します。オフデバイスバックアップの場合、正直なところ、主にrsyncフルバックアップに使用されます。これは、ディスクの外部増分バックアップが必要な状況ではduplicity問題ありません。

関連情報