qdi*_*dii 29 deduplication filesystems hardlink
我有两个包含各种文件的文件夹。第一个文件夹中的某些文件在第二个文件夹中具有完全相同的副本。我想用硬链接替换那些。我怎样才能做到这一点?
Izk*_*ata 24
我知道 4 个 linux 命令行解决方案。我的首选是这里列出的最后一个rdfind
,因为所有可用选项。
fdupes
示例输出(带有“显示大小”、“递归”选项):
$ fdupes -Sr .
17 bytes each:
./Dir1/Some File
./Dir2/SomeFile
Run Code Online (Sandbox Code Playgroud)
硬链接
--dry-run
选择。 示例输出(注意我的两个文件的修改时间略有不同,所以在第二次运行时我告诉它忽略它):
$ 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
Run Code Online (Sandbox Code Playgroud)
达夫
示例输出(带有“递归”选项):
$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File
Run Code Online (Sandbox Code Playgroud)
查找
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
Run Code Online (Sandbox Code Playgroud)
Duplicate Commander是 Windows 上可能的解决方案:
Duplicate Commander 是一款免费软件应用程序,可让您查找和管理 PC 上的重复文件。Duplicate Commander 带有许多功能和工具,可让您从这些重复项中恢复磁盘空间。
特征:
Run Code Online (Sandbox Code Playgroud)Replacing files with hard links Replacing files with soft links ... (and many more) ...
对于 Linux,您可以在此处找到 Bash 脚本。
我强烈推荐jdupes。它是fdupes的增强分支,但还包括:
--linkhard
,或-L
简称对于您的问题,您只需执行$ jdupes -L /path/to/your/files
.
您可能希望从其GitHub 存储库克隆和构建最新源代码,因为该项目仍在积极开发中。
此处还提供了Windows 二进制文件。一些 Linux / BSD 发行版中提供了打包的二进制文件——实际上我是通过$ apt search
.
归档时间: |
|
查看次数: |
11882 次 |
最近记录: |