zoukankan      html  css  js  c++  java
  • 命令:install

    简介

    从命令的名字上来看,会让人误以为这是一个和安装相关的命令。

    其实不然,install命令用于复制文件(cp)或创建空目录(mkdir)并设置相关的属性(chown、chmod)。

    这里的属性包含了ownership、权限以及时间戳(保留时间戳,而不是修改)。

    语法格式

    单源复制。一般省略掉-T选项。

    install [OPTION]... [-T] SOURCE DEST

    多源复制。一般只使用第一种。

    install [OPTION]... SOURCE... DIRECTORY
    install [OPTION]... -t DIRECTORY SOURCE...

    创建空目录。

    install [OPTION]... -d DIRECTORY...

    常用选项

    • -o, --owner=OWNER:设置属主。
    • -g, --group=GROUP:设置属组。
    • -m, --mode=MODE:设置权限。
    • -p, --preserve-timestamps:保留时间戳。
    • --backup[=CONTROL]:如果目标文件存在的话,复制前对其进行备份。
    • -b:类似--backup,但是不会接收任何参数。
    • -S, --suffix=SUFFIX:在备份时候选择对应的后缀。

    选项中关于备份的,见用法示例。

    用法示例

    复制文件并设置ownership和权限,留意源和目标文件不同的时间戳。

    [root@C7 ~]# install -o zwl -g zwl -m 777 test.txt inst.txt
    [root@C7 ~]# ls -l test.txt inst.txt 
    -rwxrwxrwx 1 zwl  zwl  13 Dec 12 10:44 inst.txt
    -rw-r--r-- 1 root root 13 Nov 14 14:49 test.txt

    同上,但是保留时间戳。同时留意,目标文件已存在,可直接覆盖,不会有交互式提示。

    [root@C7 ~]# install -o zwl -g zwl -m 777 -p test.txt inst.txt
    [root@C7 ~]# ls -l test.txt inst.txt 
    -rwxrwxrwx 1 zwl  zwl  13 Nov 14 14:49 inst.txt
    -rw-r--r-- 1 root root 13 Nov 14 14:49 test.txt

    关于备份的话,由于这个命令用得少,因此也没有深究。

    上面说了,默认情况下,目标文件如果已存在,是可以直接覆盖的。想要备份的话,可以使用-b或者--backup。

    -b所创建的备份文件的文件名为“FILE~”。反复运行的话,备份文件会被反复覆盖。

    # install -b test.txt inst.txt
    ...
    -rwxrwxrwx 1 zwl zwl 13 Dec 12 10:59 inst.txt -rwxrwxrwx 1 zwl zwl 13 Dec 12 10:58 inst.txt~

    “FILE~”中的波浪号~为后缀名,可修改。

    # install -S .bak -b test.txt inst.txt
    ...
    -rwxr-xr-x  1 root root      13 Dec 12 11:13 inst.txt
    -rwxr-xr-x  1 root root      13 Dec 12 11:11 inst.txt~
    -rwxr-xr-x  1 root root      13 Dec 12 11:13 inst.txt.bak

    --backup如果不带选项参数的话,是和-b效果一样的。如果带参数的,有一种参数叫做numbered,可简写为t,表示反复备份不会删除备份文件,而会生成数字递增式备份。

    如果此前已经有使用过数字递增式备份的话,那么后续的-b和不带参数的--backup,会延续此前的数字递增式备份继续下去。

    [root@C7 ~]# install --backup=numbered test.txt inst.txt
    [root@C7 ~]# install --backup=numbered test.txt inst.txt
    [root@C7 ~]# install --backup=t test.txt inst.txt
    [root@C7 ~]# install --backup=t test.txt inst.txt
    [root@C7 ~]# ls -l test.txt inst.txt*
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt
    -rwxr-xr-x 1 root root 13 Dec 12 11:28 inst.txt.~1~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~2~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~3~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~4~
    -rw-r--r-- 1 root root 13 Nov 14 14:49 test.txt
    [root@C7 ~]# install -b test.txt inst.txt
    [root@C7 ~]# install --backup test.txt inst.txt
    [root@C7 ~]# ls -l test.txt inst.txt*
    -rwxr-xr-x 1 root root 13 Dec 12 11:32 inst.txt
    -rwxr-xr-x 1 root root 13 Dec 12 11:28 inst.txt.~1~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~2~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~3~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~4~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~5~
    -rwxr-xr-x 1 root root 13 Dec 12 11:31 inst.txt.~6~
    -rw-r--r-- 1 root root 13 Nov 14 14:49 test.txt

     最后简单演示一下目录相关。

    [root@C7 ~]# install -o zwl -g zwl -m 777 -p -d instdir{1,2,3}
    [root@C7 ~]# ls -ld instdir{1,2,3}
    drwxrwxrwx 2 zwl zwl 6 Dec 12 11:41 instdir1
    drwxrwxrwx 2 zwl zwl 6 Dec 12 11:41 instdir2
    drwxrwxrwx 2 zwl zwl 6 Dec 12 11:41 instdir3
  • 相关阅读:
    Bzoj1597 [Usaco2008 Mar]土地购买
    Bzoj1500 [NOI2005]维修数列
    模拟7 题解
    模拟6 题解
    模拟5 题解
    远古杂题 2
    远古杂题 1
    [NOIP2013]华容道 题解
    奇袭 CodeForces 526F Pudding Monsters 题解
    图论杂题
  • 原文地址:https://www.cnblogs.com/alongdidi/p/linux_command_install.html
Copyright © 2011-2022 走看看