我有这种情况
$ 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 这个任务?