我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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/class="lazy" data-srcdir/ /home/zhou/movefile/destdir/ 
/home/zhou/movefile/class="lazy" data-srcdir/ does notexist!!!

第二,当源文件目录下无文件时,执行情况如下:


~>sh movefile.sh /home/zhou/movefile/class="lazy" data-srcdir/ /home/zhou/movefile/destdir/ 
/home/zhou/movefile/class="lazy" data-srcdir/ is empty!

第三,当源文件目录下有1个文件时,执行情况如下:


~>sh movefile.sh /home/zhou/movefile/class="lazy" data-srcdir/ /home/zhou/movefile/destdir/ 
move 1 file(s) from /home/zhou/movefile/class="lazy" data-srcdir/ to /home/zhou/movefile/destdir/ successfully!

第四,当源文件目录下有10个文件时,执行情况如下:


~>sh movefile.sh /home/zhou/movefile/class="lazy" data-srcdir/ /home/zhou/movefile/destdir/ 
move 10 file(s) from /home/zhou/movefile/class="lazy" data-srcdir/ to /home/zhou/movefile/destdir/ successfully!

总结

本文中的需求,如果有高级语言(如C语言)实现,那么代码行数至少在100行以上,而如果有shell脚本实现,那么仅需要20行左右的代码即可搞定。如此可以看出,shell命令的强大,这也算是Linux给开发者带来的一大便利。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

需求描述 编写shell脚本实现Linux下不同目录(路径)之间的文件的剪切(移动)操作。 其中,文件移动之前所在的目录称为源目录,文件移动之后所在的目录称为目的目录。要求当源目录不存在、源目录下无文件及剪切文件成功时,均要在屏幕上输出相关
2022-06-04

如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作

这篇文章给大家分享的是有关如何编写shell脚本实现在Linux下不同路径之间的文件进行剪切操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需求描述 编写shell脚本实现Linux下不同目录(路径)之间的文件
2023-06-09

Shell脚本实现切割tomcat的日志文件

这篇文章主要介绍“Shell脚本实现切割tomcat的日志文件”,在日常操作中,相信很多人在Shell脚本实现切割tomcat的日志文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell脚本实现切割to
2023-06-09

批量转换目录下文件编码的shell脚本代码

一例批量转换目录下文件编码的shell脚本代码。 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不
2022-06-04

Linux下使用Shell脚本实现ftp的自动上传下载的代码小结

1. ftp自动登录批量下载文件。#####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<
2022-06-04

shell脚本中使用iconv实现批量文件转码的代码分享

在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题。 例子一:使用shell脚本实现批量转码的操作。#!/bin/sh # convertCodeFilePat
2022-06-04

shell脚本实现ftp上传下载文件功能

前段时间工作中需要将经过我司平台某些信息核验数据提取后上传到客户的FTP服务器上,以便于他们进行相关的信息比对核验。由于包含这些信息的主机只有4台,采取的策略是将生成的4个文件汇集到一个主机上,然后iHBkwirJm在这台主机上将文件上传的
2022-06-04

如何实现批量转换目录下文件编码的shell脚本

这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin
2023-06-09

判断文件是否存在的shell脚本代码

#!/bin/sh# 判断文件是否存在# link:www.lsjlt.com# date:2013/2/28 myPath="/var/log/httpd/"myFile="/var /log/httpd/access.log" # 这里
2022-06-04

Shell脚本实现复制文件到多台服务器的代码分享

在多机集群环境中,经常面临修改配置文件后拷贝到多台服务器的情况,传统的执行scp比较麻烦,所以写了以下shell脚本,可以将指定文件拷贝到多台机器。 使用方法请参见HELP部分代码。#!/bin/bashhelp(){cat << HELP
2022-06-04

Linux下实现SNMP一键安装的Shell脚本

Net-SNMP是一个免费的、开放源码的SNMP实现,以前称为UCD-SNMP。SNMP 很多都用其安装之后,作为监控宝和阿里云的系统信息监控使用。下面就来分享linux下实现SNMP一键安装的shell脚本:#!/usr/bin/env
2022-06-04

Shell脚本实现检测文件是否被修改过代码分享

#!/bin/bash funmd5_1() { find /root/passwd -type f | xargs md5sum > /tmp/funmd5_1.log } funmd5_2() { find /root/passwd -
2022-06-04

实现bat文件暂停延时的脚本代码

这篇文章将为大家详细讲解有关实现bat文件暂停延时的脚本代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ping 192.0.2.2 -n 1 -w 10000 > nul该-w 10000部分指定所需
2023-06-08

如何实现查找目录下同名但不同后缀名文件的shell脚本代码

这篇文章主要介绍如何实现查找目录下同名但不同后缀名文件的shell脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大
2023-06-09

把文件复制N份的2个Shell脚本代码

测试时需要大量文件,所以写了脚本进行拷贝。有规律的文件名利于引用。#!/bin/sh# file name : batchcp.sh# author: zhouhh# Email: ablozhou@gmail.com# Date : 20
2022-06-04

shell脚本实现linux系统文件完整性检测

今天发现个可以检测系统文件完整性的shell脚本,自己试了下还可以吧,介绍给大家。 系统:centos 5.x 脚本内容:cat my_filecheck.sh#!/bin/bash## 变量首先声明才能使用shopt -s -o noun
2022-06-04

Shell脚本实现批量下载网络图片代码分享

最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张。图标是存储在Yahoo Image网站上的。 迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片
2022-06-04

Linux shell实现压缩多个文件代码实例

Linux环境下写一个脚本 从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件: 1.首先介绍一下case语句格式 2.脚本如下:DEST读取的是压缩后文件的名称,COMP读取的是压缩的方式 给文件加权限:创建三个文件:执行脚
2022-06-03

linux下保留文件系统下剩余指定数目文件的shell脚本

本节内容:保留文件系统下剩余指定数目的文件 例子:#!/bin/bash #------------------------------- #Description: Back up your files#site: www.lsjlt.c
2022-06-04

编程热搜

目录