Saya memiliki dua folder yang berisi berbagai file. Beberapa file dari folder pertama memiliki salinan persis di folder kedua. Saya ingin mengganti yang dengan tautan keras. Bagaimana saya bisa melakukan itu?
Saya memiliki dua folder yang berisi berbagai file. Beberapa file dari folder pertama memiliki salinan persis di folder kedua. Saya ingin mengganti yang dengan tautan keras. Bagaimana saya bisa melakukan itu?
Jawaban:
Saya tahu 4 solusi command-line untuk linux. Pilihan saya adalah yang terakhir yang tercantum di sini rdfind
, karena semua opsi tersedia.
fdupes
Output sampel (dengan opsi "tampilkan ukuran", "rekursif"):
$ fdupes -Sr .
17 bytes each:
./Dir1/Some File
./Dir2/SomeFile
hardlink
--dry-run
opsi. Output sampel (perhatikan bagaimana kedua file saya memiliki waktu modifikasi yang sedikit berbeda, jadi pada putaran kedua saya katakan untuk mengabaikannya):
$ 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
Output sampel (dengan opsi "rekursif"):
$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File
rdfind
find
?).Output sampel:
$ 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 adalah solusi yang memungkinkan pada Windows:
Duplicate Commander adalah aplikasi freeware yang memungkinkan Anda menemukan dan mengelola file duplikat di PC Anda. Duplicate Commander hadir dengan banyak fitur dan alat yang memungkinkan Anda untuk memulihkan ruang disk Anda dari duplikat tersebut.
Fitur:
Replacing files with hard links Replacing files with soft links ... (and many more) ...
Untuk Linux Anda dapat menemukan skrip Bash di sini .
Duplicate & Same File Searcher adalah solusi lain untuk Windows:
Duplicate & Same Files Searcher (Duplicate Searcher) adalah aplikasi untuk mencari file duplikat (klon) dan tautan keras NTFS ke file yang sama. Itu mencari duplikat konten file terlepas dari nama file (perbandingan byte-ke-byte yang benar digunakan). Aplikasi ini memungkinkan tidak hanya untuk menghapus file duplikat atau memindahkannya ke lokasi lain, tetapi juga untuk mengganti duplikat dengan tautan keras NTFS (unik!)
Saya memiliki alat gratis yang bagus di komputer saya yang disebut Link Shell Extension; tidak hanya bagus untuk membuat Hard Links dan Symbolic Links, tetapi juga persimpangan! Selain itu, ditambahkan ikon kustom yang memungkinkan Anda untuk dengan mudah mengidentifikasi berbagai jenis tautan, bahkan yang sudah ada sebelum instalasi; Panah Merah mewakili Hard Links misalnya, sedangkan Hijau mewakili Symbolic Links ... dan rantai mewakili Persimpangan.
Sayangnya saya menghapus instalan perangkat lunak beberapa waktu lalu (dalam-massal penghapusan berbagai program), jadi saya tidak dapat membuat tautan lagi secara manual, tetapi ikon masih muncul secara otomatis setiap kali Windows mendeteksi tautan Hard, Symbolic atau Junction.
Saya sangat merekomendasikan jdupes . Ini adalah garpu yang ditingkatkan dari fdupes , tetapi juga termasuk:
--linkhard
, atau -L
singkatnyaUntuk pertanyaan Anda, Anda bisa menjalankannya $ jdupes -L /path/to/your/files
.
Anda mungkin ingin mengkloning dan membangun sumber terbaru dari repo GitHub -nya karena proyek ini masih dalam pengembangan aktif.
Binari Windows juga disediakan di sini. Binari terpaket tersedia di beberapa distro Linux / BSD - sebenarnya saya pertama kali menemukannya $ apt search
.