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

2023-05-16

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,则返回成功。我昨天写脚本测试的时候把空的文件丢到了回收站,所有一直就结了很久。希望大家多多指教!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • 使用 sed 查找并替换包含非转义字符的变量

    我可以使用它来查找 fly 的所有实例 并将其替换为文件中的 insect sed i s fly insect g animals txt 如何找到 BASH 变量并将其替换为另一个 BASH 变量 例如 name echo fly ca
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • unix 下日期字段排序

    我有包含数十万条记录的文本文件 其中一个字段是日期字段 有没有办法根据日期字段对文件进行排序 09 APR 12 04 08 43 632279000 AM 19 MAR 12 03 53 38 189606000 PM 19 MAR 12
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • awk 脚本中出现“BEGIN 块必须有操作部分”错误

    这是我的代码 bin sh filename usr bin find name INSTANCE log echo filename is filename awk BEGIN print Processing file filename
  • 将以反斜杠结尾的行与下一行 awk 连接起来(来自著名的 awk 单行解释)

    这个练习来自于Peteris Krumins 的博客文章解释了 AWK 的俏皮话 http www catonmat net blog awk one liners explained part two 本质上是这条线 awk sub ge
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 当我尝试在 .bashrc 中添加命令时出现命令未找到消息

    我问了一个问题如何在 bash shell 中编写漂亮优雅的 linux 命令 https stackoverflow com q 19720095 80353 当我尝试该建议时 我收到以下错误消息 Sorry command not fo
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • 自动分析局域网内网速慢的电脑---结合IPERF,TASK SCHEDULE,PYTHON,MAIL

    今天写的 用IPERF作测试局域网速度的工具 用AD域组策略推送给客户端 xff0c xcopy y XXX XXX Iperf c Iperf 然后 xff0c 客户端会在每次LOGON的执行测试网速的BAT文件 xff0c 并将结果存放
  • 对IIC总线时序的一点理解以及ACK和NACK(NAK)

    参考自 xff1a http blog chinaunix net uid 16100003 id 3059814 html 关于IIC的响应问题 xff1a 对于每一个接收设备 xff08 从设备 xff0c slaver xff09 x
  • Permutation test(排列(组合)检验)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 对Permutation test 的首次描述可追溯到上个世纪30年代 Fisher 1935 和Pitman 1937 介绍了其在线性统计模型中的应用 但该法计算工作量过
  • windows全局变量设置

    今天安装jave RE xff0c 需要设置全局变量 xff0c 除了图形界面的配置外 xff0c 有没有其他的方式设置呢 xff0c 开始以为set可以 xff0c 看了半天没整明白到网上search下 xff0c 见到了几种方法 xff
  • ProxmoxVE 单机模式安装(2台服务器非集群)

    上面左边是我的个人微信 xff0c 如需进一步沟通 xff0c 请加微信 右边是我的公众号 Openstack私有云 xff0c 如有兴趣 xff0c 请关注 公司有两台测试服务器 xff0c 是华为的RH2288 V3 xff0c 配置6
  • Desktop.ini

    类型1 ShellClassInfo IconFile 61 abc exe abc ico IconIndex 61 0 类型2 ShellClassInfo IconResource 61 abc exe abc ico 0 类型2 的
  • linux下安装ntop

    Ntop是一种监控网络流量工具 xff0c 用ntop显示网络的使用情况比其他一些网络管理软件更加直观 详细 Ntop甚至可以列出每个节点计算机的网络带宽利用率 他是一个灵活的 功能齐全的 xff0c 用来监控和解决局域网问题的工具 xff
  • iOS学习24之UIControl及其子类

    1 UIControl初识 1 gt 概述 UIControl 是有控制功能 的视图 如UIButton UISlider UISegmentedControl等 的父类 只要跟控制有关的控件 都是继承于该类 UIControl 这个类通常
  • URL中“#” “?” &“”号的作用

    1 10年9月 xff0c twitter改版 一个显著变化 xff0c 就是URL加入了 34 34 符号 比如 xff0c 改版前的用户主页网址为http twitter com username改版后 xff0c 就变成了http t
  • 强化路由器IOS安全-禁用不必要的服务

    Cisco Discovery Protocol CDP xff1a 思科发现协议 xff08 CDP xff1a Cisco Discovery Protocol xff09 CDP 基本上是用来获取直连设备的协议地址以及发现这些设备的平
  • 【OCR技术系列之三】大批量生成文字训练集

    放假了 xff0c 终于可以继续可以静下心写一写OCR方面的东西 上次谈到文字的切割 xff0c 今天打算总结一下我们怎么得到用于训练的文字数据集 如果是想训练一个手写体识别的模型 xff0c 用一些前人收集好的手写文字集就好了 xff0c
  • ubuntu安装mysql报错_在Ubuntu上安装mysql数据库和遇到的问题

    如果上面没有成功 xff0c 而出现了这样的问题的话 xff1a Mysql ERROR 1045 28000 Access denied for user 39 root 39 64 39 localhost 39 using passw
  • debian wheezy 使用

    为什么80 的码农都做不了架构师 xff1f gt gt gt 准备 xff1a 1 启动盘制作 软件 xff1a windows下lililinuxusbcreator linux下unetbootin debian 7 0 iso mi
  • Debian 7 安装 Wireshark

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 安装Wireshark sudo apt get install wireshark 如果以非root权限运行wireshark xff0c 可能会出现 No inte
  • win7桌面仿linux桌面,windows10开启 linux子系统桌面,巨详细,值得一藏-win7桌面主题...

    题记 xff1a 安装完微软windows10的ubuntu子系统之后 xff0c 想打开这款子系统的桌面 xff0c 一直摸不着头脑 找了很多教程 xff0c 都有点凌乱 xff0c 在此整理一下 0 备份原 get源文件 sudo mv
  • 石器时代地图->魔力宝贝地图

  • proxmox集群节点崩溃处理

    问题描述 在现有集群加入一个物理节点 xff0c 接着再此节点创建ceph监视器 创建OSD 从宿主机系统执行ceph osd tree查看状态 xff0c 创建起来的几个OSD状态都正常 xff08 up xff09 xff0c 从pro
  • debian笔记本电源管理

    kde下面使用kpowersave工具 xff0c 实现suspend和hibernate还需要pm ultis包 此时可以通过root权限pm suspend和pm hibernate实现to ram和to disk 普通用户用kpowe
  • 发挥Squid优势,TCP_HIT变成TCP_MEM_HIT

    192 168 10 139 15 Dec 2011 16 49 37 43 0800 34 GET http www jian com p w picpaths shufa jpg HTTP 1 0 34 200 95900 34 34
  • linux默认有回收站吗,linux下默认删除文件到回收站(bash实现)

    fedora下总是会把文件不小心删除了 xff0c 所以下面的脚本把实现 xff1a 文件删除默认移动到自己的回收站里面 功能 xff1a 脚本实现删除文件或者目录到 waste 自己定义 脚本附带文件名或者目录名 xff0c 则默认代表