设为首页 收藏本站
查看: 1000|回复: 0

Linux下文件剪切的shell脚本实现代码

[复制链接]

尚未签到

发表于 2018-8-23 07:27:58 | 显示全部楼层 |阅读模式
  需求描述
  编写shell脚本实现Linux下不同目录(路径)之间的文件的剪切(移动)操作。
  其中,文件移动之前所在的目录称为源目录,文件移动之后所在的目录称为目的目录。要求当源目录不存在、源目录下无文件及剪切文件成功时,均要在屏幕上输出相关的日志信息;并且,在程序执行之前,只有源目录是存在的,目的目录需要由程序创建。
  shell脚本
  umask 0000
  if [ -d $1 ]
  then
  fcnt=ls -l $1 | wc -l
  if [ $fcnt -ne 1 ]
  then
  mkdir -p $2
  if [ -d $2 ]
  then
  mv $1* $2
  echo "move $fcnt file(s) from $1 to $2 successfully!"
  else
  echo "$2 does not exist!!!"
  fi
  else
  echo "$1 is empty!"
  fi
  else
  echo "$1 does notexist!!!"
  fi
  脚本说明
  针对本shell脚本(命名为movefile.sh),说明如下:
  第一,脚本第一行“umask 0000”表示赋予程序访问文件的权限,因为后续要对文件进行剪切操作,所以必须要有对文件的操作权限才行。
  第二,执行脚本的时候,要输入两个参数,第一个表示源文件目录,第二个表示目的目录。具体到脚本中,变量$1表示源文件目录,变量$2表示目的目录。
  第三,本脚本的主要流程是这样的:首先判断源文件目录是否存在,如果不存在,则直接打印源目录不存在的消息;如果存在,则获取源目录下的文件数目,如果文件数为0,那么表示无需要剪切的文件,那么直接打印源目录下无文件的消息;如果文件数大于0,那么就创建目的目录,并在目的目录创建成功的情况下之行文件的剪切操作。
  第四,执行本脚本的命令格式为:sh movefile.sh 源文件目录 目的目录。注意,两个目录均要以/结束。
  脚本执行
  将movefile.sh脚本上传到Linux机器上,然后对它进行测试。
  第一,当源文件目录不存在时,执行情况如下:
  ~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/
  /home/zhou/movefile/srcdir/ does notexist!!!
  第二,当源文件目录下无文件时,执行情况如下:
  ~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/
  /home/zhou/movefile/srcdir/ is empty!
  第三,当源文件目录下有1个文件时,执行情况如下:
  ~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/
  move 1 file(s) from /home/zhou/movefile/srcdir/ to /home/zhou/movefile/destdir/ successfully!
  第四,当源文件目录下有10个文件时,执行情况如下:
  ~>sh movefile.sh /home/zhou/movefile/srcdir/ /home/zhou/movefile/destdir/
  move 10 file(s) from /home/zhou/movefile/srcdir/ to /home/zhou/movefile/destdir/ successfully!
  总结
  本文中的需求,如果有高级语言(如C语言)实现,那么代码行数至少在100行以上,而如果有shell脚本实现,那么仅需要20行左右的代码即可搞定。如此可以看出,shell命令的强大,这也算是Linux给开发者带来的一大便利。
  转载于:http://52kuaiyun.com/43.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-555287-1-1.html 上篇帖子: shell脚本中if判断,if判断条件 下篇帖子: 14 使用System.Windows.Forms.OpenFileDialog类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表