Linux下可回收删除

linux不像windows——所有删除后的文件(除windows下的大文件或特殊操作下删除的文件)都会暂时存储于垃圾回收站,当自己某一天想到误删/错删了一些重要文件时,还有挽救的机会,如若不然呢,手动清空回收站,释放内存即可。Linux下用户操作文件的权限受到很多限制,比如对非当前用户home根目录下的所有文件,一般情况下需使用rm/rmdir等命令操作。对于新手来说,rm命令是一个危险的命令,一不小心,可能就误输入“rm -rf /"之类的命令,删除了系统下的重要文件,当再次开机进入系统的时候,发现系统已然崩溃。诸如此类,种种错误,余不一一。

那么,怎么做才能把我们操作文件对系统的威胁降到最低呢?方法如下:

No.1  alias重定义rm命令:

删除文件时,使用交互式删除是一种良好的习惯。因此,我们可以这么做:    

alias  rm='rm -i'
当然此命令仅限当前登陆有效,alias命令重定义范围将会在最后介绍。

使用但是碰到当前目录有很多子目录的文件夹时,就需要一一确认,如下:

创建多层文件:

mkdir -p test/test_{1,2}/test_test_{1,2,3}

tree命令显示如下:

tree test 

test
├── test_1
│   ├── test_test_1
│   ├── test_test_2
│   └── test_test_3
└── test_2
    ├── test_test_1
    ├── test_test_2
    └── test_test_3

8 directories, 0 files
删除test目录:

rm -r test

接下来的操作就显得有点尴尬:

rm:是否进入目录"test"? y
rm:是否进入目录"test/test_2"? y
rm:是否删除目录 "test/test_2/test_test_3"? y
rm:是否删除目录 "test/test_2/test_test_1"? y
rm:是否删除目录 "test/test_2/test_test_2"? y
rm:是否删除目录 "test/test_2"? y
rm:是否进入目录"test/test_1"? y
rm:是否删除目录 "test/test_1/test_test_3"? y
rm:是否删除目录 "test/test_1/test_test_1"? y
rm:是否删除目录 "test/test_1/test_test_2"? y
rm:是否删除目录 "test/test_1"? y
rm:是否删除目录 "test"? y

麻烦之处,就在于不断的确认,怎么避免呢? so easy。

rm -rf test

搞定。


No.2 增加回收站

首先附上代码,第一眼看上去不明觉厉,仔细瞧瞧原来只是正则表达式加函数实现伪删除罢了:

myrm(){ D=/tmp/$(date +%Y-%m-%d-del); mkdir -p $D; mv "$@" $D && echo "move to $D success..."; }
alias rmove='myrm'

如此一来,删除重要文件时我们可以使用rmove命令:

rmove test

结果如下:

move to /tmp/2015-10-29-del success...

再转到/tmp目录下我们就看到了刚刚'删除'的文件了。


再强调以下几点,关于alias的作用范围:

  • 在terminal输入alias命令:alias的效力仅及于该次登入的操作。
  • 在~/.bashrc存储alias命令:只对当前用户启动bash后才会生效
  • 在/etc/profile存储alias命令:对所有用户都生效。
配置完成后,需重启终端,alias命令才会生效。

注意:alias重命名命令的作用范围取决于存贮位置,具体情况参考:

           shell类型与配置文件

取消重命名unalias:

unalias  rmove 

或者在配置文件中删除相应alias命令。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值