Shell 脚本专家指南 学习笔记3 目录的复制
来源:互联网 发布:淘宝运费险价格不一样 编辑:程序博客网 时间:2024/05/19 16:32
1 使用cp
cp -Rp * /dest/dir
-R:递归复制目录结构
-p:保持原始文件的访问权限、所有权和访问修改时间
问题:没有使用原始文件的创建时间,而是使用了执行复制时的修改时间;不能保持硬链接
使用-a选项,尽可能多地保持了源文件的特性,包括硬链接
cp -a * /dest/dir
2 使用tar
tar -cvf - * | (cd /dest/dir && tar xvfp -)
-:通过管道将输出发送到标准输出
问题:通配符*并未包含隐藏在源目录中的所有文件,它遗漏了点(隐藏)文件。
3 使用find
find . -depth | xargs tar -cvf - | (cd ../tar_cp/ && tar xvfp -)
-depth:该选项解决了目录不可写或者不可查找的权限问题;对于后者,可采取先处理目录内容再处理目录本身的方法来解决。
不仅在单机上,还可以通过ssh在网络间进行复制。
find . -depth | xargs tar -cvf - | ssh machine_name `cd /dest; mkdir dir; tar xvfp -`或者:
find . -depth | cpio -dampv {/dest/dir}cpio选项意义如下:
-d:创建需要的目录
-a:重置源文件的访问时间
-m:保护新文件的修改时间
-v:列出已处理文件,展示进展状况
-p:将cpio设为“copy pass-through"模式
更多关于cpio的使用,请参考:http://blog.csdn.net/ysdaniel/article/details/7059990也可将cpio与ssh联系起来用:
find . -depth | ssh machine_name `cpio -dampv /dest/dir`
4 使用rsync
rsync -av /src/dir/ /dest/dir##不会复制/src/dir 目录本身
-a:允许复制点文件,并保持所以权限、所有权和修改时间。关于rsync的使用,请参考:http://blog.csdn.net/ysdaniel/article/details/7059958
注意,如果删除了/src/dir/ 中的后一个/,则会将复制/src/dir 目录本身通过网络向远程机器执行复制操作:
rsync -avz -e ssh user@remotehost:/src/dir /local/dest/dir
-z :加上压缩的参数!-e :使用的通道协定,例如使用 ssh 通道,则 -e ssh用rsync对网站进行镜像备份:http://blog.csdn.net/ysdaniel/article/details/7059973
- Shell 脚本专家指南 学习笔记3 目录的复制
- Shell 脚本专家指南 学习笔记1
- Shell 脚本专家指南 学习笔记2 数据重定向
- shell脚本专家指南--比较的基本原理
- shell脚本专家指南笔记----shell错误调试
- <Shell脚本专家指南>读后感
- shell脚本专家指南--库文件
- shell脚本专家指南--日期时间操作
- shell脚本专家指南--单行文本处理awk
- SHELL脚本,学习笔记
- shell脚本学习笔记
- shell 脚本学习笔记
- shell脚本学习笔记
- shell脚本学习笔记
- shell脚本学习笔记
- Shell脚本学习笔记
- shell 脚本学习笔记
- shell脚本学习笔记
- 复制当前单元格上一个单元格的内容到当前单元格
- 关于使用ZXing扫描二维码出现中文乱码的问题
- 架设SSH服务器与VNC远程桌面控制
- 推荐 30 款最好的免费项目管理软件
- jquery ui 的date
- Shell 脚本专家指南 学习笔记3 目录的复制
- 关于this和*this使用总结
- 设计软件的首要目标
- VB中的atn函数
- 在安全上Android很像Windows XP
- MetaModel 2.1 发布,数据库元模型
- nginx 1.1.10
- 超过 40 款很有用而且很新的 jQuery 插件
- Enterprise Architect 9.2 发布,企业建模工具