Мы перемещали около 4 ТБ файлов на Windows Server2 008R2 с сервера OS X. Многие имена файлов не могут быть перемещены из-за несовместимых символов. Мы запустили инструмент переименования, чтобы исправить проблему, и снова скопировали. Моя проблема в том, что у меня сейчас много папок с очень похожими именами, такими как «O'Neil» и "O_Neil". На самом деле, насколько я могу судить, все они соответствуют этому правилу. Есть слишком много, чтобы сделать вручную, я думаю о написании сценария, но у меня ограниченный опыт написания сценариев. Я хотел бы сравнить дату изменения или размер файла и объединить или переместить папки в архив и оставить один набор на месте. Я не уверен в лучшей практике в этой ситуации.

  1. Теоретически, что является лучшей практикой, объединять по дате, архивировать меньшие версии?
  2. На практике, как я могу исправить это, есть ли инструменты? Сценарий идеи?

Любая помощь очень ценится.

1 ответ1

0

Это не простой вопрос - это запрос комментариев и примеров сценариев - и может вызвать много дискуссий. Лучше разместить много небольших сфокусированных вопросов, чтобы получить ответ.

В любом случае, на сервере Mac вы можете рассчитывать на множество инструментов командной строки, которые помогут вам в написании сценариев.

Во-первых, вы можете перечислить все файлы / папки, к которым вы хотите применить правила, с помощью find:

$> найти "rootPathToSearchOn" -name "namingRule" -regex "betterNamingRule"

например:

$> find . -maxdepth 1 -regex "./[a-zA-Z]*[_'][a-zA-Z]*"
./o_neil
./o'neil
...

Таким образом, вы можете отделить те, которые с подчеркиванием от кавычек. Затем, передав вывод find в 'xargs', вы можете вызвать скрипт для выбранных файлов:

$> find . -maxdepth 1 -regex "./[a-zA-Z]*[_][a-zA-Z]*" -print0 | xargs -0 -I fileName ./myScript.sh fileName

Простой скрипт вроде:

nameToTest=`echo $1 | tr "_" "'"`
if [ -e $nameToTest ];
then echo $nameToTest has a collision to $1;
fi;

Должен вывести что-то вроде:

./o'neil столкнулся с ./o_neil

В этом случае вы можете заполнить блок «then» желаемыми действиями.

Теперь стратегия слияния зависит от вашего сценария - дата создания каталога не указывает дату его содержимого - а суммирование размера файла содержимого каталога не указывает активности на нем.

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