Моя структура папок выглядит так:
/volume1
/photoTest
/folderA
/@eaDir
/eaDir_tmp
/folderB
/@eaDir
/eaDir_tmp
/folder with space
/@eaDir
/eaDir_tmp
Я пытаюсь скопировать файлы из каждого eaDir_tmp в соответствующую папку @eaDir .
Я смог добиться этого через:
for a in $(find /volume1/photoTest -type d -name eaDir_tmp); do rsync -vhar --chmod=a+rwx $a/ $a/../@eaDir; done;
пока я не попал в папку с пробелами. Приведенный выше скрипт просто выкидывает.
После долгих поисков я попробовал:
find /volume1/photoTest -type d -name eaDir_tmp -print0 | xargs -0 rsync -vhra --chmod=a+rwx {} {}/../@eaDir
Пробный запуск этой команды выполняется без проблем. Но фактический прогон застревает после печати этого.
sending incremental file list
@eaDir/subdir1/
И застревает на этом.
ps -elf | grep rsync показывает несколько процессов rsync в состоянии wait и poll_s .
У кого-нибудь есть идеи, что происходит? И какое решение может быть?
Обновление: некоторые пояснения, основанные на комментарии:
- Переместить или Копировать? Ну, конечная цель - "двигаться". Но я бы тоже хотел знать, как копировать.
- Что происходит - да, я хотел бы знать, что происходит и почему мои команды не работают должным образом. Я надеюсь что-то узнать, так как я не обычный пользователь Linux.
- Какое может быть решение? Ну, я бы тоже хотел это знать. :)
- Что находится внутри папок
eaDir? Больше папок, а затем несколько файлов внутри них. Если это поможет, все началось с этого: https://github.com/mbrrg/synology-thumbgen. Автор предлагает удалить существующие папки@eaDirи просто переименовать вeaDir_tmp. Но я не могу этого сделать, потому что существующие папки содержат файлы, которые я хотел бы сохранить. Я могу объяснить, но я думаю, что это еще больше запутает вопрос. execdirработает - в том смысле, что он не говорит неверный аргумент и не выдает никакой ошибки. Но это не достигает цели - т.е. правильно копировать файлы.- Насколько богата моя
find? Это внутри моего Synology NAS, на котором, я думаю, работает BusyBox? Не уверен, хотя. Как я узнаю? - Если файлы назначения существуют, то я бы хотел перезаписать их, если исходный код более новый. В противном случае нет.
