하드링크를 사용하여 동일한 NTFS 드라이브의 폴더를 복사하는 방법은 무엇입니까?

하드링크를 사용하여 동일한 NTFS 드라이브의 폴더를 복사하는 방법은 무엇입니까?

동일한 드라이브(NTFS 형식)에 폴더의 복사본을 만들기 위해 하드링크를 만드는 방법이 있습니까? 다음과 같은 작업을 수행하려고 합니다. XCOPY E:\TEMP\SAMPLE1* E:\TEMP\SAMPLE2\ /s 그러나 실제로 파일을 복사하고 추가 드라이브 공간을 사용하는 대신 파일에 대한 하드링크를 생성하기만 하면 됩니다.

목표: SAMPLE2 폴더에는 필요하지 않은 소수의 파일만 있지만 SAMPLE1에는 모두 보관하려고 합니다. SAMPLE2 폴더는 결국 다른 드라이브로 복사됩니다.

참고: SAMPLE1의 총 콘텐츠는 약 400GB(그 안에 여러 하위 폴더 포함)이고 SAMPLE2에서 제외할 각 파일은 각각 약 20-40MB입니다(다양한 위치에 100개 이상의 파일이 많이 있습니다). 하위 폴더).

따라서 하드링크를 사용하는 것을 제외하고 XCOPY(위 명령)와 동일한 작업을 수행한 다음 SAMPLE2에서 원하지 않는 모든 파일을 외부 드라이브에 복사하기 전에 제거하는 방법이 있습니까? 그런 다음 SAMPLE2 폴더를 삭제합니다.

답변1

약간의 해킹이지만 다음과 같습니다.

  1. GUI를 사용하여 정기적으로 전체 복사본을 만듭니다. 복사/붙여넣기 등 디스크 공간이 사라지는 것을 지켜보세요.
  2. 소스를 참조로 설정하고 복제를 "일반"으로 설정하여 DupeGuru를 실행합니다.
  3. 보고서가 완료되면 "모두 선택 > 삭제"를 수행하고 "하드 링크로 다시 만들기" 옵션을 선택합니다. 또한 심볼릭 링크도 수행할 수 있습니다. 일부 디스크 공간을 복구해야 합니다. 구조상 다른 파일들을 스크립트로 많이 삭제한 후 업로드할 폴더를 준비할 때 가끔 사용합니다.

보너스: Mac, Windows, Linux에서 실행됩니다. 멋진!https://dupeguru.voltaicideas.net/ 여기에 이미지 설명을 입력하세요

답변2

타사 소프트웨어가 필요하지 않습니다. 이는 다음을 사용하여 수행할 수 있습니다.파워셸. 다음은 소스 경로($Path)와 "미러" 경로($MirrorPath)를 사용하는 파이프라인 지원 함수입니다. 반복적으로 채워지는 소스 하위 폴더와 일치하도록 소스 경로 및 하위 폴더의 파일에 대한 하드링크로 미러 경로를 채웁니다.

Function Mirror-Path {
  Param(
    [Parameter(Mandatory,ValueFromPipeline,Position=0)]
    [String[]]
    $Path,
    [Parameter(Mandatory,Position=1)]
    [String]
    $MirrorPath
  )
  Begin{
    If ( ! ( Test-Path $MirrorPath )) {
        mkdir $MirrorPath -Force | out-null
    }
  }
  Process{ 
    ForEach ( $Target in $Path ) {
        If ( Test-Path $Target ) {
            Resolve-Path $Target | gci -File | ForEach {
                New-item -ItemType Hardlink -Path $MirrorPath -Name $_.Name -Target $_.FullName | out-null
            }
            Resolve-Path $Target | gci -Directory | ForEach {
                Mirror-Path $_.FullName ( Join-Path $MirrorPath $_.Name )
            }
        }
        Else {
            Echo "'$Target' is not a valid path."
        }
    }
  }
  End {}
}

답변3

이론적으로는 간단합니다. 당신이 원하는 것을 정확히 수행할 디렉토리의 심볼릭 링크를 생성해야 합니다. 실제 파일처럼 보이고 작동하는 바로가기를 사용자와 프로그램에 복사합니다. 그런 다음 링크만 삭제하는 원하지 않는 심볼릭 링크를 삭제할 수 있습니다. 그런 다음 나머지 "파일"(실제로는 링크)을 평소처럼 복사하면 실제 파일이 복사됩니다.

그러나 Windows는 GUI 기반이므로 기호 링크를 만드는 GUI 솔루션이 내장되어 있지 않습니다. 또한 명령 프롬프트도 어려워졌습니다. (Linux를 사용하는 경우 터미널을 통해 쉽고 간단하며 GNOME Commander와 같은 일부 그래픽 파일 관리자를 사용하면 GUI를 통해서도 쉽게 사용할 수 있습니다.)

Sooo.. 위의 솔루션을 "쉬운" 방법으로 실행하려면 플러그인과 지원 파일을 다운로드하는 것입니다(필요한 경우 다운로드 참고 사항 읽기).여기 그러면 오른쪽 클릭 메뉴에 심볼릭 링크 옵션이 추가됩니다. 원하는 것은 "링크 소스 선택"으로 디렉토리를 '복사'한 다음 "다음으로 놓기 > 하드링크 복제"로 붙여넣는 것입니다. 파일(링크) 등을 삭제하려는 경우 연결된 디렉터리에서 작업합니다. 그런 다음 원하는 위치에 정기적으로 복사하여 붙여넣습니다(링크를 선택하여 놓지 않음). 짜잔, 바로가기가 파일로 복사되었습니다!

마지막으로 연결된 폴더를 삭제하면 아무 일도 일어나지 않은 것 같습니다.

플러그인이 잘 작동하는 것 같습니다. 사용해 보세요! 하드 링크만(소프트 링크나 연결 없음) 만들고 실제 파일이 아닌 링크로 작업하도록 주의하세요!

이제 mklink를 언급하려는 분들을 위해 이 답변을 개발하는 동안 제가 만난 내용은 다음과 같습니다. 관리자로 실행되는 명령 프롬프트를 통해 mklink를 사용하는 경우(CMD를 검색하고 마우스 오른쪽 버튼을 클릭한 후 관리자 권한으로 실행)는 동일하게 작동해야 합니다. 하지만 저에게는 그렇지 않았습니다(검색하는 경우 다른 많은 사람들에게도). secpol.msc를 통해 권한을 수정한 후에도 액세스가 거부되었습니다. 널리 퍼져있는 문제인 것 같습니다.

답변4

링크 셸 확장

이 유틸리티는 Windows 탐색기 상황에 맞는 메뉴에 셸 확장을 추가하여 끌어서 놓기 생성을 가능하게 합니다.하드링크,접합그리고심볼릭 링크. 1999년에 처음 만들어졌기 때문에 정말 오래되었지만 계속 업데이트되고 있으며 예상대로 작동합니다. 나는 이것이 가장 사용자 친화적인 솔루션이라고 믿습니다.

예시 이미지

관련 정보