여러 장치와 동기화된 디렉터리를 사용하는 많은 사용자와 마찬가지로 나 역시 상당히 안정적인 중복 미디어 파일 스트림을 갖고 있습니다. 나는 일반적으로 새로운 "동기화 패러다임"으로 이동할 때 정기적으로 중복 항목을 제거하는 것을 좋아합니다. (지난번에는 Nextcloud였습니다. 이번에는 Syncthing입니다.) fdupes 매개변수로 지정한 경로에서 검색하고 싶지만 검색 경로 중 하나에서 파일을 삭제하려는 시도를 차단하고 싶습니다. 어떻게 해야 하나요? 나는 또한 fdupes에 대한 대안에 열려 있습니다.
답변1
다음을 방지하세요:
-d 또는 --delete를 사용할 때는 데이터가 실수로 손실되지 않도록 주의해야 합니다.
-s 또는 --symlink 옵션과 함께 사용하면 사용자가 가리키는 파일을 삭제할 때 기호 링크가 실수로 유지될 수 있습니다.
디렉터리를 여러 번 지정하면 모든 파일이 중복된 파일로 나열되어 데이터가 손실됩니다.
경로 이름별로 출력을 정렬할 수 있는 또는 옵션이 fdupes
추가된 버전 1.6.0부터 즐겨찾는 디렉토리를 유지하는 것이 더 쉬워졌습니다 . (기본적으로 모든 버전에서 파일은 파일 수정 시간을 기준으로 정렬됩니다.)-o
--order
/
절대 디렉터리 이름을 사용하는 경우 즐겨찾는 디렉터리가 맨 앞에 나오도록 시작 부분에 추가 접두사를 추가하여 항상 출력의 첫 번째 디렉터리가 되도록 할 수 있습니다. 예를 들어, 디렉토리 /a/a
및 는 먼저 출력되도록 //b/b
정렬됩니다 . (이것은 이전에 정렬할 디렉토리 이름을 //b
사용하지 않는다고 가정합니다 .)/---mydir--/
//
그런 다음 옵션을 사용 -f
하거나 --omitfirst
나열된 일치 항목 집합에서 첫 번째 파일을 숨길 수 있습니다. 또는 (먼저 설명서를 읽어보세요. 파일이 삭제됩니다.) --delete --noprompt
, 첫 번째 파일은 삭제된 파일이 아닙니다.
따라서 원칙적으로 명령줄은 다음과 같습니다.
fdupes -r -f -o name //myfavourite/directory/path /dir2 /dir3 ... >listtodel
이는 단순히 삭제할 파일 이름 목록을 생성합니다(예: 목록을 에 전달) xargs
. 실제 삭제를 비대화식으로 수행하려면 위에 제공된 옵션을 추가하세요.
즐겨찾는 디렉터리에 정확한 중복 항목이 있는 경우 출력에서 해당 디렉터리에 있는 파일을 계속 찾을 수 있습니다.
같은 방법으로 카탈로그를 원하는 저장 순서로 정렬할 수 있습니다(예: ) ////dir1
///dir2
//dir3
/dir4
.