zzhdzs 2021-09-22 03:37 采纳率: 100%
浏览 48
已结题

用shell脚本使用命令mv "$Filename/*"失败,rm同样如此

自己做了一个mv替换rm的shell脚本,但是mv "$Filename/*"部分情况下能使用,rm同样如此。
当前是可以把文件移动到回收站,但是移动不回来。rm $filename/*这种命令无法执行.
vrm -ls显示回收站内文件,以及删除编号
vrm -ud恢复删除内容

img

img


下面是源码:

#!/bin/bash
DustBin="$HOME/.dustbin/"
DustName=".dustname"
DustMes=".mes"
NowDir="$(pwd)/"
if [ -e $DustBin$DustMes ]
then
    DustNum=$(cat $DustBin$DustMes)
else
    DustNum=0
    echo $DustNum > $DustBin$DustMes
fi
if [ -z $1 ]
then
    echo "Please Input The Files Or Option."
elif [ $1 = "-ar" ]
then
    read -p "Do You Want To Remove All Of The File Forever?[y/n]" input
    case $input in
        [yY]*)
            if [ -e $DustBin ]
            then
                rm -rf "$DustBin/*"
                echo "All Files Have Been Deleted."
            else
                mkdir $DustBin
                echo "There Have No Files."
            fi
            ;;
        [nN]*)
            echo "Exit."
            ;;
        *)
            echo "Please Enter Y Or N."
            ;;
    esac
elif [ $1 = "-ud" ]
then
    if [ -e $DustBin$DustName ]
    then
        Name=""
        while read FileName
        do
            if [ ${FileName#* } = $NowDir ]
            then
                Name=${FileName% *}
            fi
        done < $DustBin$DustName
        if [ -z $Name ]
        then
            echo "Can't Find Some Of The Message About This Folder."
        else
            if [ -e $DustBin$Name ]
            then
                mv "$DustBin$Name/*" $NowDir
                echo "Recovered."
                rm -rf $DustBin$Name
            else
                echo "About The '$NowDir' Was Not Found, It May Have Been Deleted Or Restored."
            fi
        fi
    else
        echo "DustBin Have No Files."
    fi
elif [ $1 = "-ls" ]
then
    if [ -e $DustBin ]
    then
        FileNames=$(ls $DustBin)
        if [ -z $FileNames ]
        then
            echo "There Is No Files."
        else
            for FileName in $FileNames
            do
                echo "===== Num:$FileName ====="
                ls -A $DustBin$FileName
            done
        fi
    else
        echo "DustBin Have No Files."
    fi
elif [ $1 = "-rm" ]
then
    if [ -e $DustBin ]
    then
        if [ -z $2 ]
        then
            echo "Please Input The Files."
        else
            if [ -e $DustBin$2 ]
            then
                read -p "Do You Want To Remove '$2' Forever?[y/n]" input
                case $input in
                    [yY]*)
                        rm -rf $DustBin$2
                        echo "Done."
                        ;;
                    [nN]*)
                        echo "Exit."
                        ;;
                    *)
                        echo "Please Input Y Or N."
                        ;;
                esac
            else
                echo "Can't Find '$2'"
            fi
        fi
    else
        echo "DustBin Have No Files."
    fi
elif [ $1 = "-h" ]
then
    echo "vrm [<Files>/<Option>]"
    echo "vrm <File> Is Used To Be Move The File On The DustBin."
    echo "<Option>"
    echo "    -h  Show This Help."
    echo "    -ls  Show All Of The Files In The DustBin."
    echo "    -ud  Restored The Last File Deleted In The Folder."
    echo "    -ar  Empty The DustBin."
    echo "    -rm <File>  Deleted The File In The DustBin."
    echo "Now DustBin File:"$DustBin
else
    if [ -e $1 ]
    then
        if [ -e $DustBin ]
        then
            mkdir "$DustBin$DustNum"
            mv "$1" "$DustBin$DustNum"
        else
            mkdir $DustBin
            mkdir $DustBin$DustNum
            mv $1 $DustBin$DustNum
        fi
        echo "$DustNum ${NowDir}" >> "${DustBin}${DustName}"
        DustNum=$(expr $DustNum + 1)
        echo $DustNum > $DustBin$DustMes
    else
        echo "Can't Find Files Named $1"
    fi
fi
  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-09-24 09:52
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 创建了问题 9月22日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退