Позвольте мне написать это без всякого контекста и, надеюсь, как можно проще.
Возможно, самый простой способ описать это:
- искать все папки с именами "копия 1", "копия 2", "копия 3" внутри /shoots /* /
- список всех папок
- запустить "fdupes -d -n" для каждой папки, не рекурсивно
Мой немного более практичный способ сделать это, основываясь на предыдущем ответе @infixed ( Сравнить файлы с контрольной суммой относительно пути друг друга?). Примечание: я не очень хорошо знаю Linux. Скорее всего, приведенные ниже команды ложны ..
- cd /volume1 /Modelshoots /shoots /
- Ls
// вывести список всех папок внутри /shoots / - кд / * / каждый
// вывести список всех папок внутри каждой папки, которая существует внутри /shoots / - grep -v "copy 1" list.txt> script.sh
- grep -v "copy 2" list.txt> script.sh
- grep -v "copy 3" list.txt> script.sh
// Чтобы исключить все папки, кроме тех, которые содержат папку с именем "копия 1", "копия 2", "копия 3" - добавьте
'fdupes -d'
перед каждой строкой / путем
// Чтобы позволить командеfdupes -d
запускаться для каждого пути, содержащего «copy #». - выполнить сценарий
Больше разъяснений:
Я хочу запустить fdupes
чтобы удалить дубликаты идентичных файлов в огромной коллекции фотосессий и резервных копий моего дяди. Я хочу сканировать только те папки, которые называются «копировать 1», «копировать 2», «копировать 3» и т.д., Размер которых изменяется во множестве папок внутри папки «стреляет». Но не папки внутри 'copy #'.
Смотрите это изображение для уточнения:
Корневая папка (/shoots/) и каждая папка для съемки не обрабатываются (модель A, модель B и т.д.), А также не обрабатываются другие вложенные папки (выбор). Единственными папками, которые нужно сканировать, являются папки, называемые «копировать 1», «копировать 2» и т.д. Однако: не более глубокие! Поэтому папка «selection» внутри «copy 1» или папка «copy 1» внутри «copy 2» не должны сканироваться!