我有这种情况
$ 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
我想覆盖file-b
,file-a
但我想保留file-b
.
这不起作用,因为它使用的权限file-a
cp file-a file-b # << edit: this works as expected! My fault!
mv file-a file-b
这行得通,但它只能从 shell 调用。想象一下我只能调用execve
或类似函数的情况。
cat file-a > file-b
我知道,我可以执行类似
sh -c "cat file-a > file-b"
但这会给转义文件名带来困难,所以我不想使用它。
是否有一些通用命令可以做到这一点,或者我应该编写自己的助手 c 程序 pro 这个任务?
rsync --inplace file-a file-b
应该做你想做的。https://linux.die.net/man/1/rsync
在不复制模式的情况下复制文件的简单命令是
但随后您会收到
dd
写入 stderr 的详细状态消息。您可以通过在 shell 中运行命令并添加 来抑制它2> /dev/null
,但随后您又回到了第 1 格。如果您有 GNUdd
,您可以这样做