reference:http://www.coolcoder.in/2014/01/getting-over-dangers-of-rm-command-in.html

When we want to delete a directory and everything in it, we normally usually use rm -rf. However, this  is a bad habit to get into. If you make a mistake, you could delete your entire partition.
 
For a start, if you drop the '-f' then at least it won't go blindly ahead and delete everything regardless of permissions etc. You can also use the ‘-i’ option which prompts you for confirmation. Deleting stuff from KDE/Gnome usually moves the file to .local/share/Trash, so if you delete from a GUI rather than CLI, then you've got that safety net.
 
People have talked about how you could set up an alias or write a little script which replaces the rm command with a safer mv command which shifts the files to .local/share/Trash where after you could delete them from the trash icon on your desktop. Others warn of caution when using this approach as when you go to a new machine and start removing stuff left right and center without thinking, then you can do bad things very quickly.
 
 A compromise might be to setup the alias/script for safe deletion, that way you won't get into a problem.
One of the alias could be rm='rm -i', which will make the system prompt you before deletion. But, this too at times become horror because after using it for a while , you will expect rm to prompt you by default before removing files. Of course, one day you'll run it with an account that hasn't that alias set and before you understand what's going on, it is too late. 
 
One other way to disable rm command can be:
 
alias rm='echo  "rm is disabled, use trash or /bin/rm instead."'
 
Then you can create your own safe alias, e.g.
 
alias remove='rm -irv'
 
The other way is using some script alternative, one of them can be 
 
1.Take a variable, for example: TRASHPATH
2.Assign the exact path of trash to that variable; most likely, trash path will be .local/share/Trash
3.Now, here's the code just paste this into your .bashrc file.
   
##################code starts
TRASHPATH=.local/share/Trash
function rem()
{
for i in $*
do
mv $i $TRASHPATH/$i
done
}
##################code ends
 
Now,if you want to delete files just issue the command
rem file1
 
You can delete multiple files as well,
rem file1 file2 file3 file4 file5
 
 
Instead of trash, you can redirect to another folder also, just don't include a slash(/) at the end of path in TRASHPATH variable.
 
Another alternative can be using trash command instead. It is compiled Objective-C and cleverly uses standard file system APIs and, should it fail (i.e. user doesn't have sufficient rights), it calls Finder to trash the files (effectively prompting for authentication). You can read more info of trash from hasseg.org/blog.

- See more at: http://www.coolcoder.in/2014/01/getting-over-dangers-of-rm-command-in.html#sthash.AnASjER1.dpuf

最新文章

  1. SQL Server ErrorLog
  2. jQuery之empty、remove、detach
  3. SharePoint 2013 使用JavaScript对象模型配置智能提示
  4. SQL Server 数据库查找重复记录的几种方法
  5. C++中的const和指针组合
  6. 关于viewport
  7. NYOJ题目198数数
  8. 1046: 最小的K个数
  9. java中的String设计原理
  10. Codeforces Round #284 (Div. 1)
  11. Android内存管理机制
  12. Mysql去除重复
  13. [POJ 1155] TELE
  14. 开发环境配置--Ubuntu+Qt4+OpenCV(二)
  15. Mac下一个/usr/include失踪
  16. C# & WPF 随手小记之一 ——初探async await 实现多线程处理
  17. websocket简单实例
  18. TypeScript学习笔记之类
  19. Vimium快捷键记录
  20. 利用Clang(Python接口)来解析C++

热门文章

  1. java-03 变量与运算符
  2. c3p0-数据库连接池原理
  3. [LeetCode 题解]: Pascal's Triangle
  4. django+echarts
  5. python3.5在内存中获取远程图片尺寸
  6. 基于.net standard 的动态编译实现
  7. TiDB和MongoDB分片集群架构比较
  8. controller 状态码
  9. AHOI2005航线规划 bzoj1969(LCT缩点)
  10. [AIR] 检测移动设备运动