服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux区分install命令和cp命令详解

Linux区分install命令和cp命令详解

2019-05-31 10:22脚本之家服务器之家 Linux

今天这篇文章的内容主要讲述的是Linux区分install命令和cp命令详解、希望对大家会有帮助,有需要的朋友一起去看看吧

在Linux众多命令中,install命令和cp命令都能拷贝文件,但在用法上有些区别,不少人在使用的时候不知如何选择,下面小编就教你如何区分install命令和cp命令。一起去看看吧!

Linux区分install命令和cp命令详解

它们之间的区别主要如下:

1、最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了;

2、install命令会恰当地处理文件权限的问题。比如说,install -c会把目标文件的权限设置为rwxr-xr-x;

3、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问题。

------------------------------------分割线------------------------------------

当时在编译LFS 6 的时候, 一直搞不懂 install 的命令 和 cp 以及和 chmod, chgrp 的区别?

工作之后才明白一个Running 的进程不能随便进行 cp , 经常会提示 “text busy", 运维部的前辈们给的建议是采用mv 来替代 cp , 今天看起来前辈好像不知道install 这个命令啊。

现在就简单介绍一下 install 命令。

install copy 文件列表且同时能够设置文件的属性(包括 owner, group) , 通常用在 Makefiles 中 用来copy 程序到指定的目录。

常见的用法有以下3中形式:

1: install -d [option] DIRECTORY [DIRECTORY.。。] 支持多个。 类似 mkdir -p 支持递归。

例如: install -d a/b/c e/f 结果和 mkdir -p a/b/c e/f 一样。

2: install [option] SOURCE DEST

复制 SOURCE 文件(测试不能是目录) 到DEST file(文件) 。

install a/e c 结果类似 cp a/e c # 注意c必须是文件。

有用选项 -D

install -D x a/b/c # 效果类似 mkdir -p a/b && cp x a/b/c

3: install [option] SOURCE [SOURCE.。。] DIRECTORY

复制 多个SOURCE 文件到目的目录。

install a/* d 其中 d 是目录。

有用选项

-b :自动备份。

-m : 设置安装文件的权限

-p :保留文件的timestamps. 也就是说文件的timestaamps 和 source 文件一样。 当我们想要利用安装文件的mtime来跟踪文件的build时间而不是 安装时间。

-s : Strip the symbol tables from installed binary executables.

-S : 备份文件的后缀。

install -S .bak new old #old 文件自动被 mv 为 old.bak.

-v: verbose ,打印install 的文件的详细信息。

`-c‘

Ignored; for compatibility with old Unix versions of `install’。 #用来兼容旧版的unix.

-C: (大写)

安装文件, 但是如果目标文件和源文件一样( 判断方法需要看看代码确认) 就跳过, 这样的好处是 能够保持一样文件的mtime.

上面就是Linux install命令和cp命令的用法介绍了,其中最大的区别就是在复制目标文件存在的时候,install可以先删除再使用,以免拷贝失败。希望此文档可以帮助到大家!

延伸 · 阅读

精彩推荐
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01