当前位置: 首页 > 编程笔记 >

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

曹高轩
2023-03-14
本文向大家介绍Linux下文件剪切的shell脚本实现代码,包括了Linux下文件剪切的shell脚本实现代码的使用技巧和注意事项,需要的朋友参考一下

需求描述

编写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给开发者带来的一大便利。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍shell脚本实现文件锁功能,包括了shell脚本实现文件锁功能的使用技巧和注意事项,需要的朋友参考一下 1.背景 当多个进程可能会对同样的数据执行操作时,这些进程需要保证其它进程没有在操作,以免损坏数据。通常,这样的进程会使用一个“锁文件”,也就是建立一个文件来告诉别的进程自己在运行,如果检测到那个文件存在则认为有操作同样数据的进程在工作。这样的问题是,进程不小心意外死亡了,没有清

  • 本文向大家介绍shell脚本实现linux系统文件完整性检测,包括了shell脚本实现linux系统文件完整性检测的使用技巧和注意事项,需要的朋友参考一下 今天发现个可以检测系统文件完整性的shell脚本,自己试了下还可以吧,介绍给大家。 系统:centos 5.x 脚本内容: 执行脚本: 进行校验: 如下: 可以看到很多OK. 如果只想看到错误的话,可以用下面这个命令: 我的系统没有报错的,所以

  • 本文向大家介绍Linux shell实现压缩多个文件代码实例,包括了Linux shell实现压缩多个文件代码实例的使用技巧和注意事项,需要的朋友参考一下 Linux环境下写一个脚本 从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件: 1.首先介绍一下case语句格式 2.脚本如下: DEST读取的是压缩后文件的名称,COMP读取的是压缩的方式 给文件加权限: 创建三个文件: 执行

  • 本文向大家介绍linux进程监控shell脚本代码,包括了linux进程监控shell脚本代码的使用技巧和注意事项,需要的朋友参考一下 为确保php页面在后台运行,写了一个监控脚本,假设程序异常退出,那么可以自动重启。 shell脚本/usr/local/scripts/receve.sh内容: 需要保证监控脚本正常运行,在每天凌晨自动重启脚本/usr/local/scripts/restart_

  • 本文向大家介绍Shell脚本实现递归删除空文件夹,包括了Shell脚本实现递归删除空文件夹的使用技巧和注意事项,需要的朋友参考一下 有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 脚本的内容很简单,就是遍历目录,找出空文件夹,然后删除。 使用 假如脚本文件为dedr.sh,我们测试的文件结构为: 运行脚本: 删除的文件: 结果: 我们可以看到

  • 本文向大家介绍shell脚本实现拷贝大文件显示百分比的代码分享,包括了shell脚本实现拷贝大文件显示百分比的代码分享的使用技巧和注意事项,需要的朋友参考一下