목차
한줄 요약
작은 복사본 폴더를 삭제 옵션 없이 검사하고 결과 파일을 별도 폴더에 저장하세요. 내용이 같은 후보는 Hash로 확인하고 이름·크기만 같은 그룹과 구분합니다. 기본 최소 크기 때문에 작은 파일이 빠질 수 있습니다. 종료값만 보지 말고 오류 메시지와 실제 보고서 파일, 검사한 폴더를 함께 확인해야 합니다.
1. 기본 정보
- 입력
- 작은 로컬 복사본 폴더
- 출력
- 텍스트·JSON 중복 목록
- 검사
- Hash와 이름·크기 비교 구분
- 완료 확인
- 보고서 내용·원본 파일 대조
2. 검사 목록 저장·확인 순서
-
1. 예제 폴더 준비
아래 자체 예제 ZIP을 짧은 로컬 경로에 풀고 input과 reports 폴더를 확인합니다. 실제 파일은 중요한 원본 대신 작은 복사본으로 시작하세요.
-
2. CLI와 경로 확인
Czkawka 프로그램 페이지에서 공식 Windows CLI를 준비하고, PowerShell에서 실행 파일과 검사 폴더의 전체 경로를 확인합니다. 현재 help의 기본값을 확인하세요.
-
3. 삭제 없이 목록 저장
삭제·이동 옵션을 넣지 않고 Hash 검사 결과를 reports의 새 텍스트·JSON 파일로 저장합니다. 출력은 검사하는 input 폴더 밖에 둡니다.
-
4. 그룹과 누락 이유 대조
각 그룹의 경로를 열어 보고 이름·크기·내용의 차이를 확인합니다. 작은 파일이 안 나오면 최소 크기 조건과 검사 폴더를 대조합니다.
-
5. 파일과 원본 확인
오류 메시지와 실제 저장 파일을 확인하고 원본 파일이 남았는지 대조합니다. 종료값 11이나 0만으로 저장 성공 또는 유효한 검사를 확정하지 않습니다.
3. 준비
이 순서는 Czkawka CLI의 중복 파일 검사·목록 저장 과업입니다. 화면으로 도구를 고르거나 GUI 배포가 필요하면 Czkawka·Krokiet 선택 페이지로 돌아가세요. Windows CLI 12.0.2의 작은 자체 예제에서 결과를 확인했으며, 다른 OS와 GUI의 동일 동작을 시험한 절차는 아닙니다.
자체 예제 ZIP 받기. 실행 파일이나 개인 자료가 들어 있지 않습니다. input에는 직접 생성한 파일 8개, reports에는 실제 검사 결과의 경로를 INPUT으로 바꾼 예시, manifest에는 원본의 SHA-256 지문이 있습니다. 실제 실행 결과는 자신의 절대 경로로 저장됩니다.
| 파일 묶음 | 조건 | 확인할 점 |
|---|---|---|
| large/alpha.bin·beta.bin | 같은 내용 · 각각 12,288B | 이름이 달라도 Hash 그룹 |
| left/same.txt·right/same.txt | 같은 이름 · 다른 내용/크기 | Name 그룹이 내용 동일은 아님 |
| equal/one.bin·two.bin | 각각 16,384B · 다른 내용 | Size 그룹이 내용 동일은 아님 |
| small/mini-a.txt·mini-b.txt | 같은 내용 · 각각 100B | 기본 크기 조건에는 안 나타남 |
압축을 푼 czkawka-report-sample 폴더에서 PowerShell을 엽니다. 아래의 실행 파일 경로는 예시이므로 공식 배포에서 준비한 CLI의 실제 위치로 바꾸세요. 경로에 공백이 있으면 따옴표를 유지합니다. input과 reports가 존재하는지 확인한 뒤 다음으로 진행하세요.
$cli = Join-Path 'C:\tools\czkawka' 'windows_czkawka_cli.exe'
$inputDir = (Resolve-Path '.\input').Path
$reportDir = (Resolve-Path '.\reports').Path
Test-Path $cli -PathType Leaf
Test-Path $inputDir -PathType Container
& $cli dup --help
두 Test-Path가 True여야 하고 help에서 검사 옵션을 읽을 수 있어야 합니다. 경로 확인에 오류가 있으면 먼저 수정하세요. 검사 폴더가 존재하지 않을 때도 종료값 0과 오류 메시지가 함께 나온 경우가 있어, 0을 폴더 유효성 검사 대신 사용할 수 없습니다.
4. 목록 저장
아래는 기본 Hash 검사 결과를 텍스트와 읽기 쉬운 JSON으로 함께 저장하는 예시입니다. -H는 이 작은 예제의 캐시를 사용하지 않도록 합니다. -f와 -p에는 폴더만 지정하지 말고 새 파일 이름까지 넣습니다. 이미 있는 결과와 구분되는 이름을 사용하세요.
& $cli dup -d $inputDir -H -f (Join-Path $reportDir 'my-default.txt') -p (Join-Path $reportDir 'my-default.json')
$scanExit = $LASTEXITCODE
$scanExit
Get-Content (Join-Path $reportDir 'my-default.txt')
CLI dup의 삭제 기본값은 NONE입니다. 이 가이드의 명령에는 삭제·휴지통·이동·하드링크 옵션을 넣지 않습니다. 파일이 만들어지면 그룹 안의 전체 경로를 읽고 자신이 지정한 폴더의 결과인지 확인하세요. JSON은 프로그램으로 읽을 때, 텍스트는 목록을 직접 열어 볼 때 사용할 수 있습니다.
검사 방식과 기본 옵션은 공식 CLI 문서와 현재 help를 대조하세요. CLI 기본 제외 목록과 GUI 설정을 같다고 가정하거나 전체 저장장치를 검사 대상으로 넓히지 않습니다.
5. 판정과 크기
기본 최소 파일 크기는 CLI dup에서 8,192B입니다. Krokiet GUI 문서의 기본 16,384B와 구분하세요. 자체 예제의 100B 중복은 기본 CLI 결과에 없었고 최소 크기를 1B로 낮춘 별도 검사에서는 나타났습니다.
& $cli dup -d $inputDir -H -m 1 -f (Join-Path $reportDir 'my-small.txt') -p (Join-Path $reportDir 'my-small.json')
이 조건은 작은 예제의 누락 이유를 확인하기 위한 것입니다. 실제 폴더에서는 필요한 파일 범위를 먼저 정하세요. 이름이나 크기만 같은 그룹을 비교하려면 같은 예제에서 아래 두 검사를 새 결과 파일로 저장할 수 있습니다.
& $cli dup -d $inputDir -H -m 1 -s NAME -f (Join-Path $reportDir 'my-name.txt')
& $cli dup -d $inputDir -H -m 1 -s SIZE -f (Join-Path $reportDir 'my-size.txt')
Name은 같은 파일 이름, Size는 같은 바이트 크기의 묶음입니다. 두 방법 모두 내용까지 같다는 뜻이 아닙니다. Hash 결과도 필요한 경로·원본과 대조한 뒤 판단하며, 유사 이미지 검사나 삭제 대상 결정을 대신하지 않습니다.
6. 예제 결과
| 검사 | 그룹·표시 파일 | 이유 |
|---|---|---|
| 기본 Hash | 1그룹 · 2파일 | 12,288B 내용 동일 묶음 |
| Hash · 최소 1B | 2그룹 · 4파일 | 100B 중복도 포함 |
| Name · 최소 1B | 1그룹 · 2파일 | same.txt 이름 묶음 · 내용은 다름 |
| Size · 최소 1B | 3그룹 · 6파일 | 같은 크기 3묶음 · 내용 동일은 별도 |
그룹 수와 화면에 표시된 파일 수, 프로그램이 말하는 중복 파일 수는 표현이 다를 수 있습니다. 한 그룹에 두 파일이 있으면 보고서가 중복 1개로 세더라도 두 경로를 읽어야 합니다. 자신의 파일에서는 이름뿐 아니라 전체 경로와 해당 원본의 필요성을 대조하세요.
7. 저장 확인
공식 문서는 종료값 11을 일치 발견, 0을 일치 없음 또는 별도 종료값 옵션 적용, 1을 오류로 안내합니다. 자체 정상 검사는 중복이 있으면 11, 단일 파일 폴더에서 중복이 없으면 0이었습니다. 하지만 모든 실패가 1로 나타나는 것은 아니었습니다.
종료값만으로 저장 성공을 판단하지 마세요
Windows CLI 12.0.2에서 보고서 파일 대신 기존 폴더를 지정하면 Failed to save results 오류가 나면서도 중복 발견 종료값 11을 반환했습니다. 존재하지 않는 검사 폴더에는 CRITICAL ERROR가 나오면서 종료값 0을 반환했습니다. 결과의 실제 파일·경로·내용과 메시지를 함께 확인하세요.
Test-Path (Join-Path $reportDir 'my-default.txt') -PathType Leaf
Get-Content (Join-Path $reportDir 'my-default.txt')
Get-Content (Join-Path $reportDir 'my-default.json') -Raw | ConvertFrom-Json
- 저장 파일이 없거나 읽히지 않으면 출력 파일명·부모 폴더·쓰기 권한과 오류 메시지를 확인합니다. 예전 보고서가 남아 있지 않은 새 이름으로 다시 저장하세요.
- 결과가 비어 있으면 검사한 폴더가 유효한지와 최소 크기·검사 기준을 확인합니다. 파일이 없다는 메시지만으로 중복이 없다고 확정하지 않습니다.
- 원본 보존은 작은 복사본의 파일 수·경로·내용을 대조합니다. 자체 예제는 manifest의 지문과 Get-FileHash 결과를 비교할 수 있습니다.
- 원하는 작업이 화면 검사라면 프로그램 선택으로 돌아가고, 이 보고서 명령에 삭제 동작을 덧붙이지 않습니다.
Get-ChildItem $inputDir -Recurse -File | Get-FileHash -Algorithm SHA256
8. 자주 묻는 질문
종료값 11은 오류인가요?
+
중복이나 일치 파일을 발견했을 때의 종료값입니다. 다만 보고서 저장 실패에도 11이 나올 수 있어 메시지와 실제 저장 파일을 함께 확인해야 합니다.
내용이 같은 작은 파일이 안 나오는 이유는 무엇인가요?
+
CLI dup의 기본 최소 크기는 8,192B입니다. 자체 예제의 100B 중복은 그 조건에서 빠졌고 최소 크기 1B 검사에서는 나타났습니다. 유효한 검사 경로와 다른 필터도 확인하세요.
이름이나 크기가 같으면 삭제해도 되나요?
+
이름·크기만 같은 그룹은 내용이 다른 파일도 포함합니다. 이 가이드는 삭제를 수행하지 않고 목록을 확인·저장하는 과업입니다. 실제 경로와 필요한 원본을 대조하세요.
이 명령은 사진이 비슷한지도 찾아주나요?
+
이 순서는 파일 중복 검사입니다. 픽셀의 시각적 유사성이나 해상도·워터마크 차이가 있는 사진은 다른 검사이며 여기서 시험하지 않았습니다.
GUI에서도 같은 최소 크기와 결과가 나오나요?
+
CLI와 Krokiet의 기본 최소 크기부터 다릅니다. 이 결과는 Windows CLI 12.0.2의 자체 예제이며 GUI나 다른 OS의 동일 동작을 확인한 것으로 일반화하지 않습니다.
9. 참고 자료
함께 보면 좋은
Czkawka·Krokiet
Czkawka는 중복 파일·비슷한 이미지·빈 폴더 등을 검사하는 무료 오픈소스 프로젝트입니다. 현재 권장 GUI인 Krokiet과 CLI를 비교하고, 내용이 같은 파일과 비슷한 사진의 판정 차이를 확인하세요.
dupeGuru
dupeGuru(듀프구루)의 Windows 설치형·포터블과 Mac·Linux 공식 배포를 확인하세요. 일반 파일·음악·사진 검사 모드, 무료 범위와 결과 검토 기준을 정리했습니다.
AllDup
AllDup은 Windows에서 이름·속성·내용이 같은 파일과 유사 이미지 후보를 찾는 무료 프로그램입니다. 개인·회사 무료 범위, 설치 EXE를 담은 ZIP과 별도 포터블 ZIP의 차이를 확인하고 공식 배포를 선택하세요.