Eu quero cp aaa/deep/sea/blob.psd
abbb/deep/sea/blob.psd
Como faço a cópia se os diretórios deep
e sea
não existirem bbb
para que a cópia crie os diretórios necessários e copie o arquivo?
Agora eu chego
No such file or directory
tão fundo e o mar não existe.
Eu olhei através do homem páginas de ajuda e outras perguntas, mas nada salta para mim.
O mais próximo que eu tenho está usando rcp
para o diretório:
rcp -r aaa/deep/sea/ bbb/deep/sea/
embora isso copie todo o diretório e conteúdo e eu apenas queira o único arquivo. Tentando fazer isso, no entanto, deucp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
resposta criará apenas 1 diretório epax
não parece ser comum.-d
vez de-D
no Mac.755
(rwxr-xr-x
), o que provavelmente não é desejado. você pode especificar outra coisa com a-m
opção, mas não consegui encontrar uma maneira de manter apenas as permissões de arquivo :(Com os comandos padrão (POSIX / Unix), você tem:
fonte
info tar
- em algum lugar da seção de preocupações com portabilidade - acho que você descobrirá que o GNUtar
afirma ser totalmentepax
compatível. Eu fiz de qualquer maneira, embora eu ainda não tenha conseguido testar essas alegações.Não conheço uma maneira de fazer isso usando
cp
, mas certamente é possível usarrsync
:onde
dir
é um diretório que não precisa existir. Existem muitas outras maneiras de conseguir o mesmo usando outros comandos.fonte
rsync -R
para preservar a hierarquia de diretóriorsync
necessidades mais opções, mas a questão era simplesmente sobre a criação de um diretório de destino não existe, portanto, a minha resposta breve :)cp
tem a--parents
opção.Se você não possui
pax
(é obrigatório pelo POSIX, como uma substituição padrão do cpio e tar que tinha muitas incompatibilidades para padronizar), usecpio -p
ou emtar -cf - … | tar -xf -
vez disso.fonte