LINUX.ORG.RU

Ответ на: комментарий от Fedor

>find . -type f -exec sh -c "mv {} /home/user/newdir/" \;

А если среди найденных файлов есть одинаковые по именам (/path1/1.mpg,/path2/1.mpg), но разные по содержанию (бинарно)? Потеряются ведь.

anonymous
()
Ответ на: комментарий от anonymous

Ага, я об этом не подумал
Тогда, наверное, шелла маловато, надо что-то из "админских" языков, чтобы по какому-то заданному типу переименовывать совпадения... Но я за это уже не возьмусь, сорри )))

А может с опциями mv поиграть? Будет менее автоматизированно, но всё равно не сложно, если совпадающих по имени файлов не сотни

Fedor ★★★
()

Усложню задачу.

Необходимо слить файлы из набора директорий в одну директорию, не потеряв ни одного файла и удалив из результирующей директории бинарно-идентичные файлы.

record ★★★★★
()
Ответ на: комментарий от Fedor

find . -type f -print0 |xargs -0 mv --reply=no --target-directory=/home/user/newdir

А то, что не перенесётся из-за одинаковых имён, уже ручками разгребать.

Teak ★★★★★
()
Ответ на: комментарий от record

1. На исходное дерево натрави fdupes, разберись с "бинарно-идентичными файлами"

2. Вместо команды mv используй ln (если все в пределах одного раздела)
   Удалить изходные файлы всегда успеется.

sdio ★★★★★
()
Ответ на: комментарий от Teak

Пусть в файле paths на каждой строчке искомые каталоги, например:
path1
path2

#!/bin/bash
cat paths | while read line
do
find "$line" -type f -exec sh -c "mv --backup=numbered {} newdir/" \;
done



record ★★★★★
()
Ответ на: комментарий от record

А размеры у файлов ведь не одинаковые?

Может с этой стороны еще покопать.

Rebel_Star
()
Ответ на: комментарий от sdio

1. fdupes - спасибо, классная вещь, но файлов тысячи, но я что-то не вижу, как её можно использовать а автоматическом режиме, оставия только один вариант файла. Впрочем, на wiki видел аналоги, может они подойдут.

2. Файлы с разных дисков.

record ★★★★★
()
Ответ на: комментарий от sdio

Сначала поставил убунтовский fdupes 1.40. Не пошло.

lol В новой версии добавили нужной мне функциональности:
Changes к 1.50-PR2

- Added "--noprompt" option for totally automated deletion of
duplicate files.

Установил 1.50-PR2.
Теперь все работает.

record ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.