满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述linux删除让linux的rm删除文件到“回收站”相关的知识,希望能为你提供帮助。
目录
??即可即用??
??说明??
即可即用将~/.local/share/Trash/files 作为回收站地址
vim/usr/local/bin/rm.sh
#!/bin/bash RECYCLE=~/.local/share/Trash/files再在~/.bashrc文件中增加如下别名配置:
test ! -d ${RECYCLE} & & mkdir -p ${RECYCLE} #if not trash folder,create one
_datedir=`date +"%Y%m%d"`
_dstdir=${RECYCLE}/${_datedir}
test ! -d ${_dstdir} & & mkdir -p ${_dstdir} #if not trash folder,create one
for _parms in $*
do
if [ -d ${_parms} ] || [ -f ${_parms} ]; then
test -d ${_parms} & & echo "${_parms} is directory" & & mv ${_parms} ${_dstdir}/
test -f ${_parms} & & echo "${_parms} is file" & & mv ${_parms} ${_dstdir}/
elseecho "${_parms} is not directory or file"
fi
done
alias rm=\'/usr/local/bin/rm.sh\'
alias surm=\'/bin/rm -i\'
最后重新载入.bashrc中的配置,实现rm 删除文件到回收站,surm彻底删除文件。
说明linux系统中误删文件恢复很麻烦,有的甚至无法恢复,所以简单实现rm脚本,实现删除文件到“回收站”。实现可以恢复到最后一次删除的文件,电脑重启后linux系统将自动删除“回收站”中的文件目录。
实现如下
中兴新支点的回收站地址是:~/.local/share/Trash/files,注意 RECYCLE=~/.local/share/Trash/files 不能写成RECYCLE=’~/.local/share/Trash/files‘
/usr/local/bin/rm.sh
#!/bin/bash RECYCLE=~/.local/share/Trash/files
test ! -d${RECYCLE} & & mkdir -p ${RECYCLE} #if not trash folder,create one
_datedir=`date +"%Y%m%d"`
_dstdir=${RECYCLE}/${_datedir}
test ! -d ${_dstdir} & & mkdir -p ${_dstdir} #if not trash folder,create one
for _parms in $*do
if [ -d ${_parms} ] || [ -f ${_parms} ]; then
test -d ${_parms} & & echo "${_parms} is directory" & & mv ${_parms} ${_dstdir}/
test -f ${_parms} & & echo "${_parms} is file" & & mv ${_parms} ${_dstdir}/
else
echo "${_parms} is not directory or file"
fi
done
再在~/.bashrc文件中增加如下别名配置:
alias rm=\'/usr/local/bin/rm.sh\'
alias surm=\'/bin/rm -i\'
最后重新载入.bashrc中的配置,实现rm 删除文件到回收站,surm彻底删除文件。
命令说明:
test ! -d$_recyc & & mkdir -p $_recyctest express& & command
如果 express为真则执行command
shell编程中for file in $*; do是什么意思
$*是此行命令所在函数(脚本)的所有被传入参数的合集
与$@类似,不用引号的情况下没有区别
区别是当被""扩起来以后
"$*"被当做一个字符串
"$@"被当做n个字符串(n=参数个数)
for 是循环语句
意思就是,当file取每一个参数的值时,执行do后面的循环体
完整语句是
for file in $*; do
#some_command
echo $file
done
上面这就是循环打印每个参数.
除了上面的方法,还可以安装:
trash-cli https://blog.csdn.net/resouer/article/details/20714277
注意:
虽然rm用别名定义了,但是可以是用绝对路径的命令 删除文件 比如/bin/rm 1.txt 仍然是调用真实的rm删除,它是不会保存到.trash目录的。
7天自动删除
如果需要定义自动清理7天删除的文件
可以写一个脚本
#!/bin/bash
find /root/.trash/ -ctime 7 -type file -name "*" -exec /bin/rm {} \\;
将脚本放入开机运行中
最近访问时间 access time (-atime)
最近更改时间 modify time (-mtime)
最近状态改动时间 change time(-ctime)
举例说明:
-mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
-mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
-mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名
例如:将系统24小时内更改过内容的档案列出 。
find / -mtime 0
找 “5天之内被更改过的档案名” 就是find / -mtime -5
找“5天前的那一天被更改过的档案名” 就是find / -mtime 5
找“5天之前被更改过的档案名” 就是find / -mtime +5
下面用图来说明一下:
文章图片
?
【linux删除让linux的rm删除文件到“回收站”】
推荐阅读
- Linux文件与目录的默认权限与隐藏权限
- Linux设备和磁盘分区|/dev/sda
- LinuxLinux使用简单密码|短密码
- Linuxlocate: can not stat () `/var/lib/mlocate/mlocate.db‘: No such file or directory
- Linuxerror while loading shared libraries: libevent-2.1.so.6 的解决办法|动态库.so找不到的解决办法
- LinuxLinux 条件变量 为什么要配合互斥锁
- 彦思科技(低成本快部署船运物流管理系统,为航运企业降本增效)
- powershell 常用命令
- LinuxCPU频率控制|Conflicting CPU frequency values detected使用cpupower设置CPU Performance模式