Мне нужно удалить дубликаты на моем компьютере, так как у меня есть около 5 копий каждой фотографии в разных папках. Я хочу удалить фотографии, которые также появляются в определенной папке, ведь я отсортировал их несколько. Я хочу, чтобы он сохранял файлы в папке, а также сохранял дубликаты, которые также не отображаются в этой папке. Например: я хочу сохранить файлы на рабочем столе.

  • C:/ Рабочий стол / file1, файл3
  • C:/ Рабочий стол / 2016 / файл2
  • C:/ Резервное копирование / файл1(2), file4
  • C:/ Backup2 / файл1(3), файл2(2), file4(2)

Результат должен быть

  • C:/ Рабочий стол / file1, файл3
  • C:/ Рабочий стол / 2016 / файл2
  • C:/ Резервное копирование / file4
  • C:/ Backup2 / file4(2)

1 ответ1

0

Предполагая, что dir1 - это путь, который вы хотите найти, и dir2 - это определенная папка:

find dir1 -not -path "dir2/*" | grep -F -f <(ls -1 dir2) | parallel rm

или, если у вас есть только xargs а не parallel:

find dir1 -not -path "dir2/*" | grep -F -f <(ls -1 dir2) | xargs rm

Пример:

Допустим, вы хотите посмотреть диск C: и папка C:\Desktop , а затем на cygwin:

find /cygdrive/c -not -path "/cygdrive/c/Desktop/*" | grep -F -f <(ls -1 /cygdrive/c/Desktop) | parallel rm

на Git-для-Windows:

find /c -not -path "/c/Desktop/*" | grep -F -f <(ls -1 /c/Desktop) | parallel rm

на WSL:

find /mnt/c -not -path "/mnt/c/Desktop/*" | grep -F -f <(ls -1 /mnt/c/Desktop) | parallel rm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .