Gil*_*not 19
使用install
命令:
install -D -m644 /a/b/c/xxxxx.sql /a/b/d/c/xxxxx.sql
Run Code Online (Sandbox Code Playgroud)
从man install
:
install
- 复制文件并设置属性
644
您可以通过修改您想要的内容来选择 Unix 权限,默认是755
因为该命令主要用于软件部署。被umask
忽略。
该命令将透明地创建所有目录结构(如果不存在)-D
:
-D
创建除最后一个之外的所有前导组件
DEST
,或 的所有组件--target-directory
,然后复制SOURCE
到DEST
无论rwxr-xr-x
.755
umask
已经存在的目录的权限不会被修改。
mur*_*uru 12
使用 GNU cp,从您希望在新目录中看到的路径的起点进行复制,并使用以下--parents
选项:
cd /a/b &&
cp --parents c/foo d
Run Code Online (Sandbox Code Playgroud)
例子:
% cp --parents c/foo d --verbose
c -> d/c
'c/foo' -> 'd/c/foo'
Run Code Online (Sandbox Code Playgroud)
使其成为单个命令:
{ cd /a/b && cp --parents c/foo d; } # compound command
env -C /a/b cp --parents c/foo d # simple command assuming BSD/GNU env
Run Code Online (Sandbox Code Playgroud)
使用-a
,cp
将从源复制目录和文件的所有属性,包括文件类型、权限、ACL、扩展属性、稀疏性和所有权(如果系统允许c
)foo
。
小智 8
您可以使用rsync相对选项。
rsync --relative /a/b/./c/xxxxx.sql /a/b/d/
Run Code Online (Sandbox Code Playgroud)
请注意,.
分隔--relative
路径应从何处开始。
要移动整个目录 ( c
),请不要忘记添加--recursive
标志以递归复制这些文件。
除了 rsync 之外,tar
还会执行您需要的操作:
tar cf - -C /a/b c/xxxxxx.sql | tar xpf - -C /a/b/d
Run Code Online (Sandbox Code Playgroud)
一个例子:
$ mkdir -p /a/b/c /a/b/d
$ touch /a/b/c/xxxxxx.sql
$ tar cf - -C /a/b c/xxxxxx.sql | tar xpf - -C /a/b/d
$ find /a/b
/a/b
/a/b/c
/a/b/c/xxxxxx.sql
/a/b/d
/a/b/d/c
/a/b/d/c/xxxxxx.sql
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1179 次 |
最近记录: |