一部のファイルのバックアップを作成し、後でデータの整合性をチェックするためのチェックサムファイルchecksums.txt
を作成しています。ただし、バックアップは数百のファイルで構成されているため、各チェックサムを手動でファイルに貼り付けるのは不便です。
$ md5sum file > checksums.txt
または
$ sha512sum file > checksums.txt
ただし、これを行うreplaceschecksums.txt
ファイルの内容は、この例ではfile
ファイルのチェックサムで置き換えられます。代わりに、内容を削除せずにfile
のchecksums.txt
へのチェックサムをappendにしたいと思います。だから私の質問は:これをどうやって行うのですか?
あともう一つだけ。私は基本的なユーザーなので、わかりやすい提案を(可能な場合のみ)試みてください。
ファイルに追加する場合は、>>
を使用する必要があります。
だからあなたの例は
$ md5sum file >> checksums.txt
そして
$ sha512sum file >> checksums.txt
>>
演算子の横に追加モードでファイルを開く @ Thomasの回答による の他のオプションは、>
演算子を使用してファイルを開くことですが、1回だけ残して次の2つのコマンドで開きます。
exec 3> checksums.txt
ファイル記述子3のファイルを開いて(切り捨てて)から、次のようにします。
md5sum file1 >&3
そこにfile1のmd5sumを書き込みます。
md5sum file2 >&3
(同じシェルから実行した場合)、file2 md5sumを追加します。
その後、次のことができます。
exec 3>&-
そのファイル記述子を閉じます。 stdout(ファイル記述子1、>
演算子のデフォルト)でも、全体コマンドグループをリダイレクトすることで同じことができます。
{ md5sum file1; md5sum file2; } > checksums.txt
または、コマンドグループの代わりにサブシェルを使用します:
(md5sum file1; md5sum file2) > checksums.txt