cp --parents /dir/another/file /tmp
fará exatamente o que você quer.
Como posso fazer isso na linha de comando?
por exemplo. copie /dir/another/file
para /tmp/
, então tenho /tmp/dir/another/file
rsync pode ser uma boa ajuda para isso:
rsync -Ravz my/first/dir/file.txt another_dir
será dado como resultado
another_dir/my/first/dir/file.txt
Você pode usar tar
para preservar caminhos ao copiar arquivos:
tar cf - /dir/another/file | (cd /tmp && tar xf -)
Tags linux file-management