Linux回收站机制实现过程及用法详解
前言:
linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么将会造成很大的麻烦,轻则会导致加班加点,浪费人力物力,重则影响公司业务,更甚则有开除之虞,而windows下的回收站机制就是一个非常不错的策略,但linux并不自带,那我们就可以手动创建一个,直接执行就好:
mkdir -p ~/.Trash cat >>~/.bashrc<<EOF #add by caimengzhi at $(date +%F) for Linux trash start alias rm=trash alias rl='ls ~/.Trash' alias ur=undelfile undelfile() { mv -i ~/.Trash/\$@ ./ } trash() { mv \$@ ~/.Trash/ } cleartrash() { read -p "Clear trash?[n]" confirm [ \$confirm == 'y' ] || [ \$confirm == 'Y' ] && /usr/bin/rm -rf ~/.Trash/* } #add by caimengzhi at $(date +%F) for Linux trash end EOF source ~/.bashrc
说明:
1. ~/.Trash就是以后被删除的文件和文件夹移动到的地方,也就是回收站
2. \$confirm 是实现验证的意思,也就是最后在文件中就是$confirm。其中\$@一样
3. 上面的作用,说白了就是命令rm 的重命名。
使用语法:
rm(删除),ur(撤销),rl(列出回收站),cleartrash(清空回收站)命令了。
#删除一个文件夹和文件都会被移动到回收站中。
$rm filedirctory
#删除一个文件
$rm file.txt
#撤销对file.txt的删除
$ur file.txt
#撤销filedirctory文件夹
$ur filedirctory
#列出回收站
$rl
#清空回收站
cleartrash
ok,基本的内容就是这些,本质上来说,只是替换了root用户的rm命令为mv命令,如果系统建立了别的用户,那么也需要使用该用户重新执行上面的命令,看情况吧,如果失去了root权限,那么rm -rf的威力也就不足为惧了,当然,我们也需要执行正规的rm命令,怎么做呢,这样就ok了:
/usr/bin/rm -rf
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
在Linux系统中使用Vim读写远程文件的命令详解
大家好,我是良许. 今天我们讨论一个 Vim 使用技巧--用 Vim 读写远程文件.要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件.从 Vim 7.x 开始,netrw.vim 就被设置为默认安装的标准插件了.这个插件允许用户通过 ftp.rcp.scp.http 等协议读写.编辑和浏览远程文件. 设定vim的工作方式(临时) :set (模式信息) :set nu - 显示行号 :set nonu - 取消行号 :set mouse=a - 设定鼠标可用 :set curso
-
linux服务器显卡崩溃解决方案
在登录界面出现分辨率特别大,整个图形界面特别大,并且怎么也登录不上去的情况时 对于这种情况,一般就是显卡驱动崩了的原因,所以我们可以首先检查显卡驱动是否有问题 nvidia -smi 如果出现说驱动链接不上什么的问题,就是说明你的显卡驱动出现了问题 主要采用以下的处理方法 一.进入ubuntu系统 首先CTRL+ALT_F1到达字符处理界面 然后输入管理员账号和密码登录进去,此时你相当于进入了终端 遇到的问题:在这个步骤的时候,由于我们是多账号的服务器,在登录管理员账号的时候,老是出现login
-
Trash-Cli:Linux上的命令行回收站工具
相信每个人都对 回收站(trashcan)很熟悉,因为无论是对 Linux 用户,还是 Windows 用户,或者 Mac 用户来说,它都很常见.当你删除一个文件或目录的时候,该文件或目录会被移动到回收站中. 需要注意的是,当把文件移动到回收站以后,文件系统空间并没有被释放,除非把回收站清空. 如果不想永久删除文件的话(清空回收站),可以利用回收站临时存储被删除了的文件,从而在必要的时候能够帮助我们恢复删除了的文件. 但是,如果在命令行使用 rm 命令进行删除操作,那么你是不可能在回收站中找到任
-
在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限
操作系统:Ubuntu 17.04 64位 MySQL版本:MySQL 5.7 一.查看3306端口是否开放 netstat -an|grep 3306 如果看到下图这样的,说明端口并未打开: 二.修改访问权限 进入目录"etc/mysql/mysql.conf.d/",如下图所示: 在这个目录下,有一个配置文件"mysqld.cnf",如下图所示: 打开这个配置文件: sudo vim mysqld.cnf 文件打开后有一大段注释说明,不用去管它,直接看到下图中的
-
Linux使用suid vim.basic文件实现提权
在kali上复现 先给需要的vim.basic文件设置suid权限 chmod u+s /usr/bin/vim.basic 先adduser test1一个普通权限用户 现在就是一个合适的提权环境 通过以下命令可以找到存在suid权限的文件 find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -
-
101个脚本之建立linux回收站的脚本
众所周知,linux是没有回收站的,一些人很害怕删错东西(有经验的linux管理员极少范这错误),个人不建议回收站,而应该是培养个人的安全意识.有点小跑题. 接着回来101个脚本之#15 Archiving Files As They're Removed 就是建立一个linux回收站的脚本 #!/bin/sh # newrm, a replacement for the existing rm command, provides a # rudimentary unremove capabil
-
快速解决linux下中文输入法问题
故事背景:最近在做资产上报相关功能,要支持中文输入,如果正常快捷方式启动程序没问题,但是升级或者卸载重新安装,自启的时候是使用su usr -C XX.sh启动,root下启动没办法获取用户的环境变量,下面开始咱们探险之路... 探索之路:通过export打印root和用户下的环境变量对比,以及google相关linux下输入法相关问题,找到了QT_IM_MODULE这个变量,不同的系统会是ibus或者fctix或者其他等等,,, 解决方案:因为程序第一次安装的时候需要用户手动启动,我们需要在代
-
Linux回收站机制实现过程及用法详解
前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么将会造成很大的麻烦,轻则会导致加班加点,浪费人力物力,重则影响公司业务,更甚则有开除之虞,而windows下的回收站机制就是一个非常不错的策略,但linux并不自带,那我们就可以手动创建一个,直接执行就好: mkdir -p ~/.Trash cat >>~/.bashrc<<EOF
-
Linux中 sed 和 awk的用法详解
sed用法: sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] 'command' 输入文本 常用选项: -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上.但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来. -e∶直接在指令列模式上进行 sed 的
-
Linux 命令head和tail常见用法详解
head和tail是一组想对应的命令,默认分别显示文件的开头和末尾10行记录. head head 命令可以将一段文本的开头一部分输出到标准输出. head命令既可以处理文本文件也可以处理标准输入. 基本应用 处理文本文件: head input.txt 当有多个文件输入时,head会顺序处理并输出: head input1.txt input2.txt 处理标准输入: ls | head 当没有其他参数时,head默认输出前10行,当然,head有各种参数. 可选参数 -n: 输出的行数 例如
-
Linux常用命令之grep命令用法详解
1.官方简介 grep是linux的常用命令,用于对文件和文本执行重复搜索任务的Unix工具,可以通过grep命令指定特定搜索条件来搜索文件及其内容以获取有用的信息. Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is, by default, a basic regular expression (BRE). Example: grep -
-
Linux中Vi和Vim编辑器用法详解
目录 一.简介 二.安装VIM 美化vim 三.进入 vi\VIM 编辑器 四.工作模式 三种工作模式: 五.退出 vi 编辑器 六.移动光标 七.控制命令 八.编辑文件 撤销命令: 重复命令: 九.删除字符 十.修改文本 十一.粘贴复制 十二.高级命令 十三.文本查找 全文件搜索 部分特殊字符列表: 搜索某行中的单个字符 十四.set 命令 十五.运行命令 十六.文本替换 十七.几点提示 十八.最全VI\Vim快捷键键位图 一.简介 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版
-
Linux文本查找命令find的用法详解
find 命令主要用于查找目录和文件,可以指定多种参数进行匹配. 用法:find +查找路径 +命令参数 [输出形式] 查找路径:告诉find在哪查找 命令参数:指定要查找的文件属性,属性包括多种,类型.名称.大小.修改时间等等 常用的参数: -name 按文件名进行查找 -user 按照文件的属主进行查找 -mtime 按照文件的更改时间来查找,-n 表示文件修改时间距今天n天以内,+n 表示文件修改时间距今天n天以前 -type 按照文件的类型查找,d 表示目录, f表示文件 ,
-
Servlet机制Pushlet原理及用法详解
Pushlet(一种comet 架构的实现)是基于Servlet 机制,数据从server端的Java 对象直接推送(push)到客户端浏览器的(动态)HTML 页面,而无需任何Java applet 或者插件的帮助. 在MyEclipse中创建工程.附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可. 在创建的工程中增加pushlet.jar,log4j.jar.拷贝pushlet.properties,sources.properties到WEB-INF下.拷贝a
-
Linux系统关机命令之间的区别及用法详解
Linux系统关机命令有哪些呢?良许教程网为您解答!熟悉linux的朋友应该知道我们在linux系统中常用到的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 以下是比较常用的一些关机命令 1.halt立刻关机 2.poweroff 立刻关机 3.shutdown -h now立刻关机(root用户使用) 4.shutdown -h 10 10分钟后自动关机 注:如果是通过sh
-
关于finalize机制和引用、引用队列的用法详解
C++有析构函数这个东西,能够很好地在对象销毁前做一些释放外部资源的工作,但是java没有.Object.finalize()提供了与析构函数类似的机制,但是它不安全.会导致严重的内存消耗和性能降低,应该避免使用.best practice是:像java类库的IO流.数据库连接.socket一样,提供显示的资源释放接口,程序员使用完这些资源后,必须要显示释放.所以可以忘记Object.finalize()的存在.JVM启动的时候,会创建一个Finalizer线程来支持finalize方法的执行.
-
Linux下的fdisk命令用法详解
Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法: 对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等, 如果还有IDE Raid卡,则依次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh.对于SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb...等等 fdisk的命令行用法为: fdisk 硬盘设备名 进入fd
随机推荐
- jxl操作excel写入数据不覆盖原有数据示例
- 自己打造HTML在线编辑器的实现难点分析
- js实现全国省份城市级联下拉菜单效果代码
- HashSet工作原理_动力节点Java学院整理
- Java中IO流文件读取、写入和复制的实例
- linux下删除7天前日志的代码(php+shell)
- 编译php 5.2.14+fpm+memcached(具体操作详解)
- WinForm窗体调用WCF服务窗体卡死问题
- jQuery实现简单的日期输入格式化控件
- Ajax方式实现定期更新页面某块内容的方法
- 做购物车系统时利用到得几个sqlserver 存储过程
- jquery如何实现在加载完iframe的内容后再进行操作
- js ie非ie浏览器的几种判断方法小结
- C#批量更新sql实例
- JS中取二维数组中最大值的方法汇总
- 金山反病毒20050102_日报
- Sequelize 常用操作详解及实例代码
- iOS系统缓存方面开发的相关基础
- Android仿京东首页画轴效果
- PHP基于数组实现的堆栈和队列功能示例