Linux - CP 命令是否会覆盖打开的文件

Linux - CP 命令是否会覆盖打开的文件

我想知道如果我以 root 身份使用 CP 或 MV 命令将文件复制到新目录,而该目录已包含该文件且当前由另一个用户打开,那么操作是否会成功,或者是否会被阻止,因为它已在使用中?

我尝试在虚拟机上测试这一点,使用 root 身份覆盖另一个终端窗口中也由 root 身份打开的文件,并且它确实成功了,但我想知道这是否仅仅是因为它是同一个用户。

我的具体情况是,如果 Windows 计算机上的某人通过 SMB 共享打开该文件,则 root 会覆盖该文件。我目前无法通过这种方式进行测试。

如果打开文件时无法成功,那么如果我将其设置为只允许除 root 用户之外的所有人读取,该怎么办?

更多信息:

我正在开发一个简单的系统来创建包含特定月份的所有订单的 csv 文件,并且当有新订单时只需将其添加到文件末尾即可。我和根用户(运行 php 文件的 cronjob)将是唯一需要编辑文件的人。

但是其他人确实会不时查看它们以查找特定订单。目前,我手动编辑文件,如果其他用户打开了文件,则无法保存,因此我想知道如果将它们存储在 Linux 计算机上并由 root 用户进行编辑,我是否会遇到同样的问题。

答案1

是的,cp 和 mv 将覆盖打开的文件。也许你可以使用 Git 或类似工具来控制版本。

相关内容