Копирование файлов с проверкой

Прогресс копирования большого файла нельзя увидеть (только gstat активность может показать), а для массы файлов, ключ -v выведет копируемый в текущий момент объект.

Копирование локально или удаленно
rsync

Копирование всего содержимого директории
cp -rv /tmp/video/DVDcamcoder /freeagent/agava-video/beasts-camcoder/

При копировании желательно список скопированных файлов перенаправить в файл (?).

Копирование определённого типа файлов
cp -v /mnt/zubova-shel2009/Леша/101_PANA/*.JPG /opt/leksey/

Сравнение скопированных файлов
diff -rs --speed-large-files. /tmp/video/DVDcamcoder/|grep -v identical

Передаваемые grep строчки сохраняются в файле diff.out diff -rs --speed-large-files. /dvdcam-13042009 | tee diff.out | grep -v identical Only in .: diff.out

Создание файла с контрольными суммами: find. -type f | xargs md5 > md5sum.`date +%Y-%m-%d`

Если в именах файлов содержаться символы ((`` ' ) and double (`` " ) quotes, backslash (``\'')), которые xargs воспринимается как разделители, то при запуске команды будет выведено сообщение: xargs: unterminated quote Поэтому надо модифицировать строку запуска следующим образом: find . -type f -print0 | xargs -0 md5 > md5sum.`date +%Y-%m-%d` Если Вы хотите, чтобы такие файлы были пропущены, то используйте ключ -Х (а при -print0 не будут пропущены?)

Далее нужно сравнить файлы с контрольными суммами. diff md5sum.2009-06-05.da5 md5sum.2009-06-05.ad10

В нормальной ситуации отличий быть не должно. В некоторых случаях из-за различия в порядке сортировки внутри директорий (на разных файловых системах? или из-за русских названий?) порядок строк в файлах может отличаться (хотя контрольные суммы будут одинаковыми), а diff это посчитает различием. В выводе diff указаны номера строк, которые имеют различие.

Выборка только одного типа файлов
Без видео-файлов tar -cvf piter2009-leksey.tar `find /sd23062009/ -name "*JPG"`