通过shell编程实现对目录下文件的操作与管理

作业需求:

在家目录下创建两个目录文件file_dir和dir_dir,如果家目录下有这两个

文件夹,就不需要创建,询问用户是否要对目录清空[Y/N],输入一个文件路径,判断

这个文件路径是否存在,如果存在,把这个目录下的目录文件复制到dir_dir中,如果是其他文件,

复制到file_dir下,统计复制的文件和目录文件的个数,并打印出来

4.封装一个函数,函数功能实现数组求和

arr=(123 456 789 111 12 34。。。)

1. 作业实现过程

#!/bin/bash 

if ! [ -e /home/file_dir ]  #判断是否存在file_dir文件夹
then
    echo file_dir not found,created  #提示不存在该文件夹
    sudo mkdir /home/file_dir        #创建该文件夹
else
    read -p "unset file_dir?[Y/N]" jud  #提示是否清空文件夹
    if [ $jud = Y ]                     #若输入Y则清空
    then
            sudo touch /home/file_dir/1.c  #添加一个垃圾文件避免清空时报错
            sudo rm /home/file_dir/*       #利用通配符一次清理所有普通类型文件
            ls /home/file_dir              #显示该文件夹下是否还有文件
    fi
fi

if ! [ -e /home/dir_dir ]                #与file_dir同理
then
    echo dir_dir not found,created
    sudo mkdir /home/dir_dir
else
    read -p "unset dir_dir?[Y/N]" jud
    if [ $jud = Y ]
    then
            sudo mkdir /home/dir_dir/1
            sudo rm -r /home/dir_dir/*
            ls /home/dir_dir
    fi
fi


dnum=0;
fnum=0;
read -p "plz put in a absolute path:" jud  #提示输入一个绝对路径
if [ -e $jud ]  #判断路径是否存在                                                      
then
    cd $jud      #进入该路径内
    for fil in `ls`  #循环输入该路径内的所有文件
    do
        if [ -d $fil ]  #判断该文件是否为目录文件
        then
            sudo cp -r $fil
            /home/dir_dir/ #若是目录文件则拷贝到家目录下的dir_dir
            ((dnum++))      #同时计数拷贝了几个目录文件
        elif [ -f $fil ]    #判断该文件是否为普通文件
        then
            sudo cp $fil /home/file_dir/    #若是普通文件则拷贝到家目录下的file_dir
            ((fnum++))                      #同时计数拷贝了几个普通文件
        fi
    done
else
    echo "path doesn't exist"    #若绝对路径并不存在则提示不存在
fi
echo absolute path contains:     #显示绝对路径下有哪些文件
ls $jud
echo file_dir contains:          #显示家目录下的file_dir现在有哪些文件
ls /home/file_dir
echo dir_dir contains:           #显示家目录下的dir_dir现在有哪些文件
ls /home/dir_dir
echo 复制了 $dnum  个目录 与 $fnum 个文件   #显示程序运行的结果概要

2.作业实现效果

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值