Позвольте мне написать это без всякого контекста и, надеюсь, как можно проще.

Возможно, самый простой способ описать это:

  1. искать все папки с именами "копия 1", "копия 2", "копия 3" внутри /shoots /* /
  2. список всех папок
  3. запустить "fdupes -d -n" для каждой папки, не рекурсивно

Мой немного более практичный способ сделать это, основываясь на предыдущем ответе @infixed ( Сравнить файлы с контрольной суммой относительно пути друг друга?). Примечание: я не очень хорошо знаю Linux. Скорее всего, приведенные ниже команды ложны ..

  1. cd /volume1 /Modelshoots /shoots /
  2. Ls
    // вывести список всех папок внутри /shoots /
  3. кд / * / каждый
    // вывести список всех папок внутри каждой папки, которая существует внутри /shoots /
  4. grep -v "copy 1" list.txt> script.sh
  5. grep -v "copy 2" list.txt> script.sh
  6. grep -v "copy 3" list.txt> script.sh
    // Чтобы исключить все папки, кроме тех, которые содержат папку с именем "копия 1", "копия 2", "копия 3"
  7. добавьте 'fdupes -d' перед каждой строкой / путем
    // Чтобы позволить команде fdupes -d запускаться для каждого пути, содержащего «copy #».
  8. выполнить сценарий

Больше разъяснений:

Я хочу запустить fdupes чтобы удалить дубликаты идентичных файлов в огромной коллекции фотосессий и резервных копий моего дяди. Я хочу сканировать только те папки, которые называются «копировать 1», «копировать 2», «копировать 3» и т.д., Размер которых изменяется во множестве папок внутри папки «стреляет». Но не папки внутри 'copy #'.

Смотрите это изображение для уточнения:

Корневая папка (/shoots/) и каждая папка для съемки не обрабатываются (модель A, модель B и т.д.), А также не обрабатываются другие вложенные папки (выбор). Единственными папками, которые нужно сканировать, являются папки, называемые «копировать 1», «копировать 2» и т.д. Однако: не более глубокие! Поэтому папка «selection» внутри «copy 1» или папка «copy 1» внутри «copy 2» не должны сканироваться!

0