shell 文件拷贝
来源:互联网 发布:淘宝店铺刷钻多少钱 编辑:程序博客网 时间:2024/04/30 00:05
有个应用场景如下:目前有一套网盘系统的文件存储是在windows下按照目录结构按实际文件名称存储的,现在需要将该系统的文件迁移到linux系统中,且文件都存储在一个目录下,该目录不再包含子目录,目前一个解决方案是使用shell脚本来进行简单处理。
##原文件目录,需要解析的文件目录RESOURCEPATH="/home/hsinghsu/new"##将原文件拷贝到的目录,将文件统一拷贝到该目录TOPATH="/home/hsinghsu/to"##原系统文件上传的路径,用于拼接原文件在原系统中的绝对路径RESOURCEFLAG="D://upload"##原文件在linux系统的前缀,用于拼接原文件在原系统中的绝对路径RESOURCEPRE="/home/hsinghsu/new"##生成导出文件txtEXPORTTXT="/home/hsinghsu/export.txt"##RESOURCEPRE值的长度resourceLength=${#RESOURCEPRE}##echo $resourceLength#获得随机数返回值,用于生成新的文件名function random() { ## +%s获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数,+%N 获得当前时间的纳秒数据,精确到亿分之一秒 num=$(date +%s%N); echo $num; } ##在txt中打印标头echo -e "原文件名\t新文件名\t原文件路径\t新文件路径">>$EXPORTTXT##解析文件拷贝文件函数function COPYFILES(){ ##获取原文件及目录列表 filelist=`ls -l $RESOURCEPATH` ##循环遍历文件 for filename in $filelist;do ##判断是否是文件 if [ -f $filename ] ; then ##echo "this is a file,file name is $filename , file:`pwd`/$filename" ##文件在linux系统中存放的全路径 tfilepath=`pwd`/$filename ##获取子字符串,获取目录的结构,以/开始 tmpFilePath=${tfilepath:resourceLength} ##原始文件在原系统中的目录结构 oldFilePath=$RESOURCEFLAG$tmpFilePath tfile=$filename; ##拷贝后的文件名,不含后缀,不含/ oldFileName=${tfile%.*} ##拷贝后的文件后缀,不含. oldFileNameExt=${tfile##*.} ##echo "oldFileName:$oldFileName" ##echo "oldFileNameExt:$oldFileNameExt" ##新文件名,通过随机数生成19位的数字 newFileName=$(random) ##echo "newFileName:$newFileName" ##将生成的文件名称写入导出日志文件中,打印的内容:原文件名\t新文件名\t原文件路径\t新文件路径 echo -e "$filename\t$newFileName.$oldFileNameExt\t$oldFilePath\t$TOPATH/$newFileName.$oldFileNameExt">>$EXPORTTXT ##将原文件复制在制定的目录下 cp $RESOURCEPATH/$filename $TOPATH/$newFileName.$oldFileNameExt ##判断是否是目录 elif [ -d $filename ] ; then ##echo "this is a dict,dict name is $filename ,dict:`pwd`/$filename" cd $filename RESOURCEPATH=`pwd` ##对目录递归执行COPYFILES COPYFILES RESOURCEPATH=`dirname $RESOURCEPATH` cd $RESOURCEPATH ##else ##echo "$RESOURCEPATH/$filename is not a common file.Please check." fi done}cd $RESOURCEPATHCOPYFILESecho "ALL DONE"
执行后最后会生成日志文件,文件内容显示:原文件名\t新文件名\t原文件路径\t新文件路径
0 0
- shell 文件拷贝
- shell脚本 文件拷贝
- 拷贝头文件shell
- linux shell批量拷贝文件
- Shell 拷贝多份文件
- shell拷贝依赖库文件
- linux shell 递归拷贝文件
- shell 脚本写的拷贝大文件显示拷贝百分比
- shell拷贝文件的安全方法
- shell编程实例四实现文件拷贝
- shell 拷贝文件到指定用户目录
- 【甘道夫】拷贝文件到多台服务器的Shell脚本
- shell 递归函数---循环拷贝文件到指定目录
- 【甘道夫】拷贝文件到多台服务器的Shell脚本
- ubuntu在shell中把文件拷贝进U盘
- 1.shell实用脚本:批量拷贝相同类型的文件
- 用shell脚本挂载linux主机拷贝相应文件
- 基于shell实现向多台服务器拷贝hosts文件
- 一个计算器的C语言实现
- <图形图像,动画,多媒体> 读书笔记 --- AirPlay
- Spring构造注入
- Where my journey starts
- Pomelo介绍
- shell 文件拷贝
- 技术与业务闲谈
- 中国大学教师学术水平排行榜
- Java I/O全文摘要(十)过滤流,压缩流
- 跟hoowa学做智能路由
- 2014.10.16--Java基础课第三天学习总结
- 学习了一种新东西
- Win 7 下Navicat无法连接64位Oracle 11gR2:Cannot load OCI DLL解决方法
- php添加扩展(hello world)