GNU/Linux >> Linux の 問題 >  >> Linux

Btrfsでデータをコピーせずにファイルを複製するにはどうすればよいですか?

私はbtrfsの経験はありませんが、
ファイルの重複を排除できると宣伝されています。

私のアプリケーションでは、ディレクトリツリー全体を複製する必要があります。

私が学んだことから、btrfsは一部のポストスキャンでのみ重複排除され、
すぐには重複排除されません。 cpを使用するだけでも
重複排除をトリガーしないようです(少なくとも、df は、コピーされたファイルの
サイズでのディスク使用量の増加を示しています。

データを完全に移動することを避けて、btrfsに伝えることはできますか? 直接
別の場所でファイルを複製します。基本的にはその
メタデータのクローンを作成しますか?

本質的には、ハードリンクに似ていますが、独立したメタデータを使用します
(権限、mod。時間、…)。

承認された回答:

2つのオプションがあります:

  1. cp --reflink=always
  2. cp --reflink=auto

ほとんどの場合、2番目の方が最初の方よりも望ましいです。 autoを使用する これは、ファイルシステムがreflinking(たとえば、ext4またはNFS共有へのコピー)をサポートしていない場合に、真のコピーの実行にフォールバックすることを意味します。最初のオプションでは、完全に失敗してコピーが停止することは間違いありません。

これをスクリプトの一部として使用していて、理想的でない状況に直面しても堅牢である必要がある場合は、auto より良いサービスを提供します。


Linux
  1. Btrfs ファイル システムを作成してマウントする方法 (例で説明)

  2. LinuxでCでファイルを書く方法は?

  3. rm はどのように機能しますか? rm は何をしますか?

  1. ddを使用してFFでファイルをパディングする方法は?

  2. grep コマンドを使用して Linux で name=php.ini のファイルを検索する方法

  3. パイプを使用してvimでファイルを開く方法

  1. パイプでティーを使用しているときにstderrをファイルに書き込むにはどうすればよいですか?

  2. tar を使用してフォルダー構造のないファイルを抽出するにはどうすればよいですか

  3. iftop - 出力を含むテキスト ファイルを生成する方法は?