linux默认有回收站吗,linux下默认删除文件到回收站(bash实现)

fedora下总是会把文件不小心删除了,所以下面的脚本把实现:文件删除默认移动到自己的回收站里面。

功能:

脚本实现删除文件或者目录到~/waste/(自己定义)。

脚本附带文件名或者目录名,则默认代表”删除”,移动到回收站。

参数 -l 代表列出回收站内容,后面不带参数则列出所有内容,可以指定文件或者目录。

-d 代表清空回收站,后面不带参数为清空回收站,也可以指定删除文件或者目录。

脚本执行权限为root。

首先以root权限创建一个回收站

$ mkdir ~/waste

下面是脚本内容

#!/bin/bash

arg_del_flag=0#删除标志,默认是不删除

arg_list_flag=0#list标志,默认不list

Waste_Path="/root/waste/"

if [ $# -lt 1 ]; then

echo "usage : $0 -[l|d] [filename]"

exit 1

fi

file_num=0

for param in $@

do

case $param in

"-d")

arg_del_flag=1#删除

continue

;;

"-l")

arg_list_flag=1 #list

continue

;;

"-"*)

echo "unknow \"$param\""

echo "usage : $0 -[l|d] [filename]"

continue

;;

*)

file[$file_num]="$param"#文件名

let file_num++

;;

esac

done

i=0

if [ $arg_del_flag -eq 1 ]; then

cd ${Waste_Path}

if [ $# -eq 1 ];then#删除所有

rm -rf ${Waste_Path}*

exit 0

fi

while [ $i -lt $file_num ]

do

if [ -f ${file[$i]} ];then#如果是普通文件

rm -f ${Waste_Path}${file[$i]}

elif [ -d ${file[$i]} ];then#如果是目录

rm -rf ${Waste_Path}${file[$i]}

else

echo "${file[$i]} is not existed"

fi

let i++

done

exit 0

fi

if [ $arg_list_flag -eq 1 ]; then

cd ${Waste_Path}

if [ $# -eq 1 ];then#list所有

ls -l ${Waste_Path}

exit 0

fi

while [ $i -lt $file_num ]

do

if [ -s ${file[$i]} ];then#文件是否存在 -s 表示文件存在窃长度大于0,成功返回

ls -l ${Waste_Path}${file[$i]}

else

echo "${file[$i]} is not existed"

fi

let i++

done

exit 0

fi

#不存在-l 或者 -d 选项,删除文件

while [ $i -lt $file_num ]

do

if [ -f ${file[$i]} -o -d ${file[$i]} ];then#确保文件存在

mv ${file[$i]} ${Waste_Path}

if [ $? == 0 ];then

echo "${file[$i]} deleted successfully"

fi

else

echo "${file[$i]} is not existed"

fi

let i++

done

exit 0

把脚本执行权限修改,然后添加到

系统环境变量

中!

上面脚本还存在一个小bug,就是在进入回收站判断文件是否存在的时候,我用了一个-s选项,若是文件存在且长度大于0,则返回成功。我昨天写脚本测试的时候把空的文件丢到了回收站,所有一直就结了很久。希望大家多多指教!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值