Вы можете сделать что-то вроде следующей команды (протестировано в успешном окружении ).
find./ -path '*/FOLDER.DUPLICATE.$DRIVEBENDER/*' -type f -execdir sh -c '
if [ "$(stat -c %s -- "$0")" -ge "$(stat -c %s -- "../${0##*/}" || echo 1)" ]; then
echo mv -v "$0" "../";
fi
' '{}' \;
Структура каталогов/файлов перед выполнением команды:обратите внимание, что числа в скобках [...]
обозначают размер файлов/каталогов в байтах.
$ tree --du
.
├── [ 4] 1.1
├── [ 8] 2.1
├── [12] 3.1
├── [55] FOLDER.DUPLICATE.$DRIVEBENDER
│ ├── [ 3] 1.1
│ ├── [36] 3.1
│ └── [16] 4.1
└── [40] Subfolder
├── [16] 1.2
└── [24] FOLDER.DUPLICATE.$DRIVEBENDER
├── [ 8] 2.2
└── [16] 3.2
119 bytes used in 3 directories, 9 files
Структура каталогов/файлов после выполнения команды:
$ tree --du
.
├── [ 4] 1.1
├── [ 8] 2.1
├── [36] 3.1
├── [16] 4.1
├── [ 3] FOLDER.DUPLICATE.$DRIVEBENDER
│ └── [ 3] 1.1
└── [40] Subfolder
├── [16] 1.2
├── [ 8] 2.2
├── [16] 3.2
└── [ 0] FOLDER.DUPLICATE.$DRIVEBENDER
107 bytes used in 3 directories, 8 files