Мне нужно переместить все файлы из каталога, отбрасывая структуру каталога.

К сожалению, некоторые файлы имеют одинаковые имена (миниатюры). Я ищу что-л. как это:

find /tmp/dirtree -type f -exec mv -i {} . \;

Как я могу предотвратить перезапись больших файлов во время процесса?

1 ответ1

2

Создайте mymv.pl :

#!/usr/bin/perl
use File::Copy;
$file = shift;
($name = $file) =~ s#.*/##;
if (-f $name and -s $file < -s $name) {
     warn "$name not moved";
} else {
     move($file, $name);
}

Затем измените строку на

find /tmp/dirtree -type f -exec perl mymv.pl {} \;

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