Моя структура папок выглядит так:
/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? Не уверен, хотя. Как я узнаю? - Если файлы назначения существуют, то я бы хотел перезаписать их, если исходный код более новый. В противном случае нет.