Rsync другое поведение при синхронизации папок HDD-HDD или HDD-Ext HD

Если Вы хотите переместить все файлы в иерархии каталогов к единственному целевому каталогу в ударе ≥4 (помещенный shopt -s globstar в Вашем ~/.bashrc) или zsh:

mkdir ~/new-directory
mv -i **/*.xxx ~/new-directory

В других оболочках:

mkdir ~/new-directory
find . -name '*.xxx' -exec mv -i {} ~/new-directory \;

Как считать это find команда:

  • .: пересеките текущий каталог
  • -name '*.xxx': действие на файлах, имя которых соответствует этому шаблону
  • -exec … \;: выполните эту команду на каждом файле, заменив {} путем к файлу

Существует более сложное использование команды find это быстрее, если у Вас есть много файлов, поскольку это не должно вызывать отдельное mv процесс для каждого файла:

find . -name '*.xxx' -exec sh -c 'mv -i "$@" "$0"' ~/new-directory {} +

+ в конце говорит find вызвать команду на несколько файлов за один раз. С тех пор find может только поместить имена файлов в конце командной строки, и mv потребности иметь целевой каталог в последний раз, мы используем промежуточную оболочку для реконструкции аргументов ("$0" первый аргумент оболочке, ~/new-directory, и "$@" последующие аргументы, прибывающие из findрасширение {}).

6
21.01.2013, 17:26
2 ответа

Ваш раздел USB fat32 не обрабатывает все метаданные. Вместо-av пробуют-rv.

0
27.01.2020, 20:30

rsync назвали опцию - modify-window=NUM, который можно использовать для сокращения точности сравнения метки времени. Попробуйте его - modify-window=1. Опция была создана для точно этой цели.

rsync может также попытаться зафиксировать другие метаданные, как принадлежность файла, которая потеряна на FAT32 и друзьях, таким образом, у Вас могут все еще быть проблемы даже когда с помощью - modify-window=1

2
27.01.2020, 20:30

Теги

Похожие вопросы