这篇文章给大家分享的是有关如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
需求描述
编写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!
感谢各位的阅读!关于“如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。