-- TOC --
向cp命令一样,只不过为install过程提供许多有用的参数,可以设置mode,group,owner等信息。
-d
参数用来创建目录,作用于mkdir p
一样:
$ install -d a/b/c 1/2/3
$ tree a
a
└── b
└── c
2 directories, 0 files
$ tree 1
1
└── 2
└── 3
2 directories, 0 files
用install命令copy文件,文件自动就拥有了可执行权限:
$ install _ins_jpegtran.sh a/b/c/kk
$ tree a
a
└── b
└── c
└── kk
2 directories, 1 file
$ ll a/b/c/kk
-rwxr-xr-x 1 xinlin xinlin 665 1月 21 13:56 a/b/c/kk*
-D
参数可同时实现创建路径和copy文件:
$ install -D _ins_jpegtran.sh 1/2/3/kk
$ tree 1
1
└── 2
└── 3
└── kk
2 directories, 1 file
$ ll 1/2/3/kk
-rwxr-xr-x 1 xinlin xinlin 665 1月 21 14:00 1/2/3/kk*
可以用-m
参数控制文件copy后的权限,这样就不用单独执行chmod命令。
$ install -D _ins_jpegtran.sh -m 644 1/2/3/kk
-s
参数,自动进行strip动作。
-g
:设置group
-o
:设置owner
如果使用--verbose
,就能够看到install命令都干了些什么:
$ install -D --verbose _ins_jpegtran.sh a/b/c/xx
install: creating directory 'a'
install: creating directory 'a/b'
install: creating directory 'a/b/c'
'_ins_jpegtran.sh' -> 'a/b/c/xx'
$ install -D --verbose _ins_jpegtran.sh a/b/c/xx
removed 'a/b/c/xx'
'_ins_jpegtran.sh' -> 'a/b/c/xx'
注意重复安装同一个文件的时候,install先删除再copy,这样的log信息可能会在其它场景下看到。
-t
:指定target directory,source file就copy到这里面。
install命令的backup功能要说道一下,当脚本重新安装的时候,可以通过设置backup参数,保留上一次安装的相同的文件。
$ install -D -b _ins_jpegtran.sh a/b/kk
$ install -D -b _ins_jpegtran.sh a/b/kk # second install
$ tree a
a
└── b
├── kk
└── kk~
默认备份文件的后缀是~
,可以用-S
或者--suffix
指定后缀。如果是更多次的install场景,想要保存每一次的备份文件,就要使用--backup
参数:
$ echo '11' >> aa
$ cat aa
11
$ install -D --backup=t aa -m444 1/2/3/aa
$ echo '22' >> aa
$ install -D --backup=t aa -m444 1/2/3/aa
$ echo '33' >> aa
$ install -D --backup=t aa -m444 1/2/3/aa
$ tree 1
1
└── 2
└── 3
├── aa
├── aa.~1~
└── aa.~2~
2 directories, 3 files
$ cat 1/2/3/aa
11
22
33
$ cat 1/2/3/aa.~1~
11
$ cat 1/2/3/aa.~2~
11
22
上例使用--backup=t
,备份的文件后缀中有个数字,数字越大,表示越近的备份!backup后可跟的控制参数,请参考man page。
本文链接:https://cs.pynote.net/sf/linux/shell/202201211/
-- EOF --
-- MORE --