Muszę skopiować strukturę katalogów z jednego lokalnego dysku NTFS na inny (Windows 7+) i zachować twarde linki istniejące w tej strukturze katalogów.
Dopuszczalnym rozwiązaniem byłoby zastąpienie dowiązań twardych (względnymi) dowiązaniami symbolicznymi przed kopiowaniem, ale nie jestem pewien, czy jest to wykonalne.
Jakie są tutaj opcje?
ntfs
symbolic-link
hardlink
Estus Flask
źródło
źródło
Odpowiedzi:
Narzędzie do kopiowania twardych łączy na oddzielnych partycjach dysku
LN - twarde linki wiersza poleceń
Komenda:
ln --copy x:\dir\dir2 y:\dir\newdir
Zasób: http://schinagl.priv.at/nt/ln/ln.html
Pobierz: http://schinagl.priv.at/nt/ln/ln.html#contact
Uwaga: Wygląda na to, że po prostu pobierasz to oprogramowanie dla architektury procesora z pliku ZIP, a także vcredist (Visual C ++ Redistributable) i instalujesz go. Następnie wyodrębnij pliki i foldery z pliku ZIP do nowego folderu gdzieś (.eg
C:\Temp
). W wierszu poleceń wystarczy przejść do tego folderu [katalog], a następnie uruchomić potrzebne polecenia dla lokalizacji dysku, jak pokazuje powyższy przykład. Uruchamianieln --help
pokazuje szczegóły pomocy, ale powyższy przykład polecenia powinien skopiowaćhard links
dokumentację.Rozszerzenie powłoki łącza
Zasób: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Pobierz: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact
Sekcje lub funkcje będące przedmiotem zainteresowania tego oprogramowania
Smart Mirror
Clone
Smart Copy
ln - Hardlinks wiersza poleceń - Pobierz zrzut ekranu
Link Shell Extension - pobierz zrzut ekranu
CIEKAWE UWAGI
Wygląda na
hard links
to, że są zablokowane na tej samej partycji dysku ze względu na wskaźniki plików itp. I nie można ich używać na wielu partycjach. Ponadtohard links
na partycjach NTFS są częściąMaster File Table
rekordów (lub atrybutów co najmniej zliczeń), więc kopiowanie ich na istniejący dysk, który ma własnyMFT
, wydaje się problemem, jeśli nie sklonujesz bajt po bajcie na poziomie partycji przynajmniej.źródło
Narzędzie wiersza polecenia
rsync
robi to, o co prosisz.Zakładając, że twoje stare dane znajdują się w lokalizacji A, a nowe w B, wykonaj następujące czynności:
Cytowanie z podręcznika rsync:
Jak go uzyskać
rsync
i z niego korzystać? Istnieją 2 proste alternatywy dla systemu Windows:Pierwsza alternatywa: użyj
cygwin
. To oprogramowanie Windows. Zainstaluj, dodajrsync
na etapie wybierania pakietów. Pozostaw wszystko inne domyślne. Po zainstalowaniu użyj jego powłoki, aby wpisać polecenie. Jeśli chcesz, możesz użyć pełnej ścieżki/usr/bin/rsync
zamiast tylkorsync
. Jeśli chcesz uzyskać dostęp do dysków Windows, użyj ścieżek takich jak „/ cygwin / drives” i zawsze staraj się automatycznie uzupełniać za pomocą TAB.Druga alternatywa: jeśli jest to komputer stacjonarny, użyj dystrybucji GNU / Linux na żywo. Przygotuj obraz USB na żywo, uruchom go, zamontuj żądane dyski i wywołaj rsync. Jeśli obraz na żywo nie ma
rsync
, zainstaluj go. (apt-get install rsync
w Debianie i jego pochodnych.) Jeśli nie masz jeszcze doświadczenia z ekosystemem Linuksa, cygwin może być łatwiejszy.źródło
A
jest katalogiem, toB
powinna być nazwa, którą katalog przybierze na celu (inaczej niżcp
na przykład, gdy ostatnim argumentem jest katalog nadrzędny)ln
jak pokazano w innej odpowiedzi. Cygwinrsync
z tej odpowiedzi może również działać, jak już wspomniałem.ln --copy
. Jeśli chodzi o GUI, zakładam, że „Smart Copy” jest tym, czego szukasz.Spróbuj przeszukać rsync dla Windows. Ponieważ rsync ma opcję zachowania twardych linków (flaga -H, --hard-links), powinien wykonać to zadanie (źródło: https://download.samba.org/pub/rsync/rsync.html ).
Możesz spróbować spojrzeć na coś takiego jak cwRsync: https://www.itefix.net/cwrsync# ten ma GUI.
źródło
Bardzo późno na imprezę tutaj.
Zwalczaj ogień ogniem. Ponieważ robocopy pozwoliło na bałagan, użyjemy robocopy również do jego wyczyszczenia.
Utwórz pusty katalog, a następnie użyj robocopy, aby skopiować pusty katalog do obiektu docelowego (który ma bardzo długie ścieżki) za pomocą opcji czyszczenia.
To powinno działać.
źródło