さまざまなファイルを含む2つのフォルダーがあります。最初のフォルダーの一部のファイルには、2番目のフォルダーに正確なコピーがあります。それらをハードリンクに置き換えたいと思います。どうやってやるの?
さまざまなファイルを含む2つのフォルダーがあります。最初のフォルダーの一部のファイルには、2番目のフォルダーに正確なコピーがあります。それらをハードリンクに置き換えたいと思います。どうやってやるの?
回答:
Linux用の4つのコマンドラインソリューションを知っています。私が好むのは、rdfind
利用可能なすべてのオプションがあるため、ここにリストされている最後のものです。
fdupes
サンプル出力(オプション「サイズの表示」、「再帰的」):
$ fdupes -Sr .
17 bytes each:
./Dir1/Some File
./Dir2/SomeFile
ハードリンク
--dry-run
オプションがあります。 サンプル出力(2つのファイルの変更時刻がわずかに異なることに注意してください。2回目の実行では、それを無視するように指示しています):
$ stat Dir*/* | grep Modify
Modify: 2015-09-06 23:51:38.784637949 -0500
Modify: 2015-09-06 23:51:47.488638188 -0500
$ hardlink --dry-run -v .
Mode: dry-run
Files: 5
Linked: 0 files
Compared: 0 files
Saved: 0 bytes
Duration: 0.00 seconds
$ hardlink --dry-run -v -t .
[DryRun] Linking ./Dir2/SomeFile to ./Dir1/Some File (-17 bytes)
Mode: dry-run
Files: 5
Linked: 1 files
Compared: 1 files
Saved: 17 bytes
Duration: 0.00 seconds
ダフ
サンプル出力(オプション「再帰」を使用):
$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File
rdfind
find
ますか?)。サンプル出力:
$ rdfind -dryrun true -makehardlinks true .
(DRYRUN MODE) Now scanning ".", found 5 files.
(DRYRUN MODE) Now have 5 files in total.
(DRYRUN MODE) Removed 0 files due to nonunique device and inode.
(DRYRUN MODE) Now removing files with zero size from list...removed 0 files
(DRYRUN MODE) Total size is 13341 bytes or 13 kib
(DRYRUN MODE) Now sorting on size:removed 3 files due to unique sizes from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on md5 checksum:removed 0 files from list.2 files left.
(DRYRUN MODE) It seems like you have 2 files that are not unique
(DRYRUN MODE) Totally, 17 b can be reduced.
(DRYRUN MODE) Now making results file results.txt
(DRYRUN MODE) Now making hard links.
hardlink ./Dir1/Some File to ./Dir2/SomeFile
Making 1 links.
$ cat results.txt
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1 1 17 2055 24916405 1 ./Dir2/SomeFile
DUPTYPE_WITHIN_SAME_TREE -1 1 17 2055 24916406 1 ./Dir1/Some File
# end of file
Duplicate Commanderは、Windowsで可能なソリューションです。
Duplicate Commanderは、PC上の重複ファイルを見つけて管理できるフリーウェアアプリケーションです。Duplicate Commanderには、これらの重複からディスク領域を回復できる多くの機能とツールが付属しています。
特徴:
Replacing files with hard links Replacing files with soft links ... (and many more) ...
Linuxの場合、ここで Bashスクリプトを見つけることができます。
Duplicate&Same File Searcherは、Windows上のもう1つのソリューションです。
重複&同じファイルサーチャー(重複サーチャー)は、重複ファイル(クローン)と同じファイルへのNTFSハードリンクを検索するためのアプリケーションです。ファイル名に関係なく、重複するファイルの内容を検索します(バイト単位の正確な比較が使用されます)。このアプリケーションでは、重複ファイルを削除したり、別の場所に移動したりするだけでなく、重複をNTFSハードリンクで置き換えることもできます(一意です!)
私のコンピューターにはLink Shell Extensionと呼ばれる気の利いた無料ツールがありました。ハードリンクとシンボリックリンクを作成するのに最適なだけでなく、ジャンクションも作成しました。さらに、カスタムアイコンを追加して、インストール前にすでに存在していたものであっても、さまざまなタイプのリンクを簡単に識別できるようにしました。たとえば、赤い矢印はハードリンクを表し、緑の矢印はシンボリックリンクを表し、チェーンはジャンクションを表します。
さまざまなプログラムの大量アンインストール中に、残念ながらソフトウェアをアンインストールしたため、これ以上手動でリンクを作成することはできませんが、Windowsがハードリンク、シンボリックリンク、またはジャンクションリンクを検出すると常にアイコンが自動的に表示されます。
jdupesを強くお勧めします。これはfdupesの拡張フォークですが、次のものも含まれています。
--linkhard
、または-L
略して質問については、単に実行でき$ jdupes -L /path/to/your/files
ます。
プロジェクトはまだ活発に開発中であるため、GitHubリポジトリから最新のソースを複製してビルドすることをお勧めします。
Windowsバイナリもここで提供されます。パッケージ化されたバイナリは、いくつかのLinux / BSDディストリビューションで利用可能です-実際、私は最初にそれを見つけました$ apt search
。