eu tenho essa situação
$ ls -la
-rw-r--r-- 1 user user 123 Mar 5 19:32 file-a
-rwx---rwx 1 user user 987 Mar 5 19:32 file-b
Gostaria de substituir file-b
, file-a
mas gostaria de preservar todas as permissões e propriedade de arquivos file-b
.
Isso não funciona, porque usa permissões defile-a
cp file-a file-b # << edit: this works as expected! My fault!
mv file-a file-b
Isso funciona, mas só pode ser chamado a partir do shell. Imagine a situação que posso chamar apenas execve
ou função semelhante.
cat file-a > file-b
Eu sei, que posso executar algo como
sh -c "cat file-a > file-b"
mas isso apresenta dificuldades em escapar de nomes de arquivos, então não quero usar isso.
Existe algum comando comum que pode fazer isso ou devo escrever meu próprio programa auxiliar c pro esta tarefa?