社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 464阅读
  • 1回复

[分享]详解Linux系统中的install命令的用法

楼层直达
z3960 
级别: FLY版主
发帖
787169
飞翔币
211615
威望
215717
飞扬币
2620781
信誉值
8


 用法:install [选项]... [-T] 源文件 目标文件
  或:install [选项]... 源文件... 目录
  或:install [选项]... -t 目录 源文件...
  或:install [选项]... -d 目录...
  此install 将文件(通常仅是编译后的文件)复制到您所选择的目的位置。
  如果您希望在GNU/Linux 操作系统下载并安装一个即时可用的软件包,
  您应当使用诸如yum(1) 和apt-get(1) 的软件包管理器。
  在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录
  中同时设置其所有权和权限模式。在第四种形式中,创建给出目标目录中的所有组件。
  长选项必须使用的参数对于短选项时也是必需使用的。
  --backup[=CONTROL] 为每个已存在的文件创建备份
  -b 类似--backup 但不接受参数
  -c (忽略)
  -C, --compare 比较每组源文件和目标文件,在一些情况下不修改目标文件
  -d, --directory 将所有参数视为目录名称;为指定的目录创建所有组件
  -D 创建目标目录的所有必要的父目录,然后将源文件复制至该目录
  -g, --group=组 自行设置所属组,而不是进程目前的所属组
  -m, --mode=模式 自行设置权限模式(像chmod),而不是rwxr-xr-x
  -o, --owner=所有者 自行设置所有者(只适用于超级用户)
  -p, --preserve-timestamps 修改源文件的访问/修改时间以与目标文件保持一致
  -s, --strip 拆解符号表
  --strip-program=程序 指定拆解二进制文件的程序
  -S, --suffix=后缀 覆盖常用备份文件后缀
  -t, --target-directory=目录 将源文件所有参数复制到指定目录
  -T, --no-target-directory 将目标文件视为普通文件
  -v, --verbose 创建目录时显示其名称
  --preserve-context 保持SELinux 的安全环境
  -Z, --context=CONTEXT 设置文件和目录的SELinux 安全环境
  --help 显示此帮助信息并退出
  --version 显示版本信息并退出
  备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
  环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
  变量来选择。以下是可用的变量值:
  none, off 不进行备份(即使使用了--backup 选项)
  numbered, t 备份文件加上数字进行排序
  existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never 永远使用普通方式备份
  例:
  代码如下:
  [root@linux ~]# install test.php ar_test #将test.php拷贝到ar_test下面
< p>[root@linux ~]# install -d hao #创建目录

  [root@linux ~]# install -t hao utf8 test.php #将utf8 test.php cp到hao目录下面
  linux中install命令和cp命令的区别
  基本上,在Makefile里会用到install,其他地方会用cp命令。
  它们完成同样的任务——拷贝文件,它们之间的区别主要如下:
  1、最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在 使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用 install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了;
  2、install命令会恰当地处理文件权限的问题。比如说,install -c会把目标文件的权限设置为rwxr-xr-x;
  3、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问题。
  代码如下:
  install - copy files and set attributes
  install 在做拷贝的同时,设置attributes.
  因此Makefile 中尽量使用install 命令。
  例如
  代码如下:
  @install -d /usr/bin -p -D -m 0755 targets /usr/bin
  相当于
  代码如下:
  @mkdir -p /usr/bin targets /usr/bin 755 /usr/bin/targets /usr/bin/tagets
< p>

  更新文件时间戳
  install 命令好强大啊。
  另外@前缀的意思是不在控制台输出结果。
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
z3960 
级别: FLY版主
发帖
787169
飞翔币
211615
威望
215717
飞扬币
2620781
信誉值
8

只看该作者 1 发表于: 2016-01-11
学习Linux命令之最基本的文件操作

cd
  cd 是打开某个路径的命令,也就是打开某个文件夹,并跳转到该处。
  代码如下:
  $ cd path ### path 为你要打开的路径。
  其中 path 有绝对路径和相对路径之分,绝对路径强调从 / 起,一直到所在路径。相对路径则相对于当前路径来说,假设当前家目录有etc 文件夹(绝对路径应为 /home/username/etc),如果直接 cd etc 则进入此文件夹,但若是 cd /etc/ 则是进入系统 etc ,多琢磨一下就可以理解了。另外在 Linux 中, . 代表当前目录, .. 代表上级目录,因此返回上级目录可以 cd .. 。
  ls
  ls 即 list ,列出文件。
  代码如下:
  $ ls ### 仅列出当前目录可见文件
  $ ls -l ### 列出当前目录可见文件详细信息
  $ ls -hl ### 列出详细信息并以可读大小显示文件大小
  $ ls -al ### 列出所有文件(包括隐藏)的详细信息
  注意: Linux 中 以 . 开头的文件或文件夹均为隐藏文件或隐藏文件夹。
  pwd
  pwd 用于返回当前工作目录的名字,为绝对路径名。
  代码如下:
  $ pwd
  /home
  mkdir
  mkdir 用于新建文件夹。
  代码如下:
  $ mkdir folder
  $ mkdir -p folder/subfolder ### -p 参数为当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹
  rm
  rm 即 remove ,删除文件。
  代码如下:
  $ rm filename ### 删除 filename
  $ rm -i filename ### 删除 filename 前提示,若多个文件则每次提示
  $ rm -rf folder/subfolder/ ### 递归删除 subfolder 下所有文件及文件夹,包括 subfolder 自身
  $ rm -d folder ### 删除空文件夹
  cp
  cp 即 copy ,复制文件。
  代码如下:
  $ cp source dest ### 将 source 复制到 dest
  $ cp folder/* dest ### 将 folder 下所有文件(不含子文件夹中的文件)复制到 dest
  $ cp -r folder dest ### 将 folder 下所有文件(包含子文件夹中的所有文件)复制到 dest
  mv
  mv 即 move ,移动文件。
  代码如下:
  $ mv source folder ### 将 source 移动到 folder 下,完成后则为 folder/source
  $ mv -i source folder ### 在移动时,若文件已存在则提示 **是否覆盖**
  $ mv source dest ### 在 dest 不为目录的前提下,重命名 source 为 dest
  cat
  cat 用于输出文件内容到 Terminal 。
  代码如下:
  $ cat /etc/locale.gen ### 输出 locale.gen 的内容
  $ cat -n /etc/locale.gen ### 输出 locale.gen 的内容并显示行号
  more
  more 与 cat 相似,都可以查看文件内容,所不同的是,当一个文档太长时, cat 只能展示最后布满屏幕的内容,前面的内容是不可见的。这时候可用 more 逐行显示内容。
  代码如下:
  $ more /etc/locale.gen
  $ more +100 /etc/locale.gen ### 从 100 行开始显示
< p>

  less
  less 与 more 相似,不过 less 支持上下滚动查看内容,而 more 只支持逐行显示。
  代码如下:
  $ less /etc/locale.gen
  $ less +100 /etc/locale.gen
  nano
  nano 是一个简单实用的文本编辑器,使用简单。
  代码如下:
  $ nano filename ### 编辑 filename 文件,若文件不存在,则新打开一个文件,若退出时保存,则创建该文件
  编辑完后,ctrl + X 提示是否保存,按 y 确定保存即可。
  注意:在使用过程中可用 ctrl + G 获取帮助。
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。