如何复制文件并同时更改所有权、权限

这个简短的教程描述了如何在类 Unix 操作系统中从命令行同时复制文件和更改所有权、权限。 通常,我们使用“cp”命令将文件从一个位置复制到另一个位置。 然后,我们使用“chmod”和“chown”命令分别更改文件的权限和所有权。 但是,我们可以将所有这些任务组合成一个 单行命令,并且仍然得到相同的结果,而不是运行三个连续的命令。 当您想要定期执行此操作或在脚本中执行此操作时,这会很有帮助。

复制文件并同时更改所有权、权限

看看以下 example.

要复制文件并更改权限和所有权,我们通常这样做:

$ cp /dir1/file1 /dir2
$ chmod 775 -R /dir2
$ chown -R newowner:newgroup /dir2/file1

但是,您不必为这个简单的任务使用三个命令。 我们可以用一个命令来做到这一点。 这就是 “安装” 命令派上用场。

我认为“安装”命令是为了安装东西。 但是我错了! “安装”命令用于将文件复制到您选择的目的地并设置属性。 它是预装在所有 Linux 发行版中的 GNU coreutils 的一部分。

现在,让我展示如何在复制过程中更改文件的权限和所有权。

$ sudo install -C -m 775 -o sk -g ostechnix /dir1/file1 /dir2

上面的命令将复制文件 /dir1/file1/目录2将文件的权限更改为 775所有者 sk和组 ostechnix.

让我们分解上面的命令,看看命令的每个部分是做什么的。

  • -C, (–compare) :比较每一对源文件和目标文件,在某些情况下,根本不修改目标文件。
  • -m, (–mode) :设置权限模式(如在 chmod 中)。
  • -o, (–owner) :设置用户所有权。
  • -g, (–group) :设置组所有权。

有关更多详细信息,请参阅手册页。

$ man install

推荐阅读:

  • 复制文件或目录时如何保持所有权和文件权限完整
  • ExplainShell – 查找 Linux 命令的每个部分的作用

就这样。 希望这可以帮助。

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!