Как лучше всего создать несуществующий каталог при копировании файлов в AIX? Что-то вроде этого:
ssh server1 'cp -R ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory
ssh server1 'cp -r ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory
Каталог ~user2/ существует, но каталог ~user2/bin отсутствует.
решение1
Одной из возможностей было бы использование tar-конвейера:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -x -p -f -)
Это использует подоболочку для перехода в родительский каталог исходного местоположения, затем сообщает о необходимости tar
записи архива каталога "log" в stdout. Вторая подоболочка переходит в родительский каталог назначения, затем сообщает tar
о необходимости извлечения архива, который поступает через stdin канала. tar
Команды связаны в цепочку, &&
чтобы выполняться только в случае успешного выполнения соответствующей cd
команды.
Вы можете проверить это, указав второму tar
просто вывести входящее содержимое; просто измените -x
на -t
. Использование -p
with -t
не имеет значения и не повредит:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)