Çeşitli dosyalar içeren iki klasörüm var. İlk klasördeki bazı dosyaların ikinci klasörde tam bir kopyası vardır. Bunları sabit bir bağlantıyla değiştirmek istiyorum. Bunu nasıl yapabilirim?
Çeşitli dosyalar içeren iki klasörüm var. İlk klasördeki bazı dosyaların ikinci klasörde tam bir kopyası vardır. Bunları sabit bir bağlantıyla değiştirmek istiyorum. Bunu nasıl yapabilirim?
Yanıtlar:
Linux için 4 komut satırı çözümü biliyorum. Tercih ettiğim, rdfind
mevcut tüm seçenekler nedeniyle burada listelenen sonuncusudur .
fdupes
Örnek çıktı ("gösteri boyutu", "özyinelemeli" seçenekleriyle):
$ fdupes -Sr .
17 bytes each:
./Dir1/Some File
./Dir2/SomeFile
hardlink
--dry-run
seçeneği var. Örnek çıktı (iki dosyamın biraz farklı değiştirilmiş süreleri olduğunu unutmayın, bu nedenle ikinci çalışmada bunu görmezden gelmesini söyledim):
$ 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
puding
Örnek çıktı ("özyinelemeli" seçeneği ile):
$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File
rdfind
find
mi gerekiyor ?).Örnek çıktı:
$ 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
Yinelenen Komutan , Windows'ta olası bir çözümdür:
Duplicate Commander PC'nizde yinelenen dosyaları bulmanızı ve yönetmenizi sağlayan ücretsiz bir uygulamadır. Kopya Komutanı, disk alanınızı bu kopyalardan kurtarmanıza izin veren birçok özellik ve araçla birlikte gelir.
Özellikler:
Replacing files with hard links Replacing files with soft links ... (and many more) ...
Linux için burada bir Bash betiği bulabilirsiniz .
Duplicate & Same File Searcher , Windows'ta başka bir çözümdür:
Duplicate & Same Files Searcher (Duplicate Searcher) aynı dosyaya yinelenen dosyaları (klonlar) ve NTFS sabit bağlantılarını aramak için bir uygulamadır. Dosya adından bağımsız olarak yinelenen dosya içeriğini arar (gerçek bayt-bayt karşılaştırması kullanılır). Bu uygulama sadece yinelenen dosyaları silmek veya başka bir konuma taşımak için değil, aynı zamanda yinelenen NTFS sabit bağlantıları ile değiştirmek için izin verir (benzersiz!)
Bilgisayarımda Link Shell Extension adlı şık bir aracım vardı; Sadece Sabit Bağlantılar ve Sembolik Bağlantılar oluşturmak için değil, Kavşaklar da harikaydı! Buna ek olarak, kurulumdan önce var olanlar bile farklı bağlantı türlerini kolayca tanımlamanıza izin veren özel simgeler ekledi; Örneğin Kırmızı Oklar Sert Bağlantıları, Yeşil Sembolik Bağlantıları temsil eder ... ve zincirler Kavşakları temsil eder.
Ne yazık ki yazılımı bir süre önce kaldırdım (çeşitli programların toplu olarak kaldırılmasında), bu yüzden artık bağlantıları manuel olarak oluşturamıyorum, ancak Windows bir Sabit, Sembolik veya Bağlantı bağlantısı algıladığında simgeler hala otomatik olarak görünüyor.
Jdupes tavsiye ederim . Geliştirilmiş bir fdupes çatalıdır , ancak şunları içerir:
--linkhard
veya -L
kısacaSorunuz için, sadece yürütebilirsiniz $ jdupes -L /path/to/your/files
.
Proje hala aktif geliştirme aşamasında olduğundan GitHub deposundan en son kaynağı klonlamak ve oluşturmak isteyebilirsiniz .
Windows ikili dosyaları da burada sağlanır. Paketlenmiş ikili dosyalar bazı Linux / BSD dağıtımlarında mevcuttur - aslında ilk olarak buldum $ apt search
.