Linux中彻底删除文件(转)

Linux中彻底删除文件

我们知道在Linux中删除文件一般使用rm, 但是rm命令并不会真的清空保存该文件的数据块的内容,而只是释放了该文件所占用的索引节点和数据块。因此用rm删除的文件是可以通过一些方法恢复的(比如可以用debugfs恢复,具体方法Google之)。

有些时候我们要彻底删除一些文件,可以使用shred命令来实现,shred是coreutils的一部分,所以Linux中基本都会有这个命令。

shred彻底删除文件的方法:

$ shred -u file

shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。

如果想清除的更彻底一点可以加-z 参数,意思是先用随机数据填充,最后再用0填充。

$ shred -u -z file

另外shred还可以清除整个分区或磁盘,比如想彻底清除/dev/sdb1分区的内容可以这样:

$ shred /dev/sdb1   (注意不要加-u参数)

shred的详细参数:
-f, --force   更改权限允许写入(如有必要)

-n, --iterations=N   重写N次,默认为3次

--random-source=FILE 从指定文件读取数据

-s, --size=N  将文件粉碎为固定大小 (可使用后缀如K、M、C等)

-u, --remove   重写后截短并移除文件

-v, --verbose   显示进度

-z, --zero - add  用0覆盖数据

–help  显示帮助

–version   显示版本信息

转自

http://www.linuxsong.org/2010/12/shred-file/

linux教程:Linux系统下文件保护与彻底删除技巧

linux教程:Linux系统下文件保护与彻底删除技巧

 在网上经常看到使用chmod修改文件权限的介绍文章,但是介绍linux里面的另外两个经典的文件操作命令chattr和lsattr,shred的文章确很少,这是我的学习笔记,希望对新学linux的朋友有所帮助。

    chattr命令有很多用处,可以防止重要文件被错误的修改,误删。或把一些不在用机密的文件彻底删除,使其无法恢复。

    好了下面看看chattr命令的具体用法。

    chattr的作用是修改文件属性,需要超级用户的权限。

    我们可以用下面的命令看看chattr命令的具体用法

    $chattr ——help

    usage: chattr [-RV] [-+=AacDdijsSu] [-v version] files……

    lsattr的作用是查看文件属性。

    可以用下面的命令看看lsattr命令的具体用法

    $lsattr ——help

    Usage: lsattr [-RVadlv] [files……]

    先用vi建立一个叫test1的目录,内容随便。

    $vi test1

    用lsattr先看一下test1文件的属性

    $ lsattr test1

  ------------- test1

    发现属性项都为空

    好了我们为test1文件加一个属性看看。

    $chattr +s test1

    再用lsattr看一下test1文件的属性

    $ lsattr test1

  ------------ test1

    会发现test1多了一个s属性

    s属性:意思是当删除test1这个文件时,相应的磁盘空间会被清零。就像我们常在windows用的一种彻底删除文件的软件。删除的文件不能被恢复

    好了我们再看一个例子

    $chattr +a test1

    a属性:意思就是使文件只可以追加数据,不能修改或覆盖。这时我们再用vi编辑文件会发现只能追加数据,但不能修改以前的数据。

    想删除已经添加的文件属性也很容易,只要用-减去就可以了,和chmod的操作一样。

    $chattr -a test1

    这样就去掉了test1只能追加数据的限制,可以自由修改了。

    chattr还有很多参数可以选择,除了上面介绍的两个,常用的还有

    i属性:不允许对这个文件进行修改,删除或重命名

    c属性:保存文件时,压缩该文件。

    其他还有很多参数,大家可以参考chattr的使用帮助。然后说说shred,使用 shred /dev/hda 就可以让你的硬盘数据立刻消失,永不超升。当然要使用你的硬盘的正确的设备文件。

    默认情况下使用各种垃圾数据反复重写25遍,加上 -v 参数就可以看到。
    
     $ shred -v /dev/hda

shred: /dev/hda: pass 1/25 (random)...

shred: /dev/hda: pass 2/25 (492492)...

shred: /dev/hda: pass 3/25 (000000)...

shred: /dev/hda: pass 4/25 (aaaaaa)...

shred: /dev/hda: pass 5/25 (555555)...

shred: /dev/hda: pass 6/25 (cccccc)...

shred: /dev/hda: pass 7/25 (b6db6d)...

shred: /dev/hda: pass 8/25 (333333)...

shred: /dev/hda: pass 9/25 (6db6db)...

shred: /dev/hda: pass 10/25 (dddddd)...

shred: /dev/hda: pass 11/25 (222222)...

shred: /dev/hda: pass 12/25 (ffffff)...

shred: /dev/hda: pass 13/25 (random)...

shred: /dev/hda: pass 14/25 (eeeeee)...

shred: /dev/hda: pass 15/25 (924924)...

shred: /dev/hda: pass 16/25 (777777)...

shred: /dev/hda: pass 17/25 (999999)...

shred: /dev/hda: pass 18/25 (111111)...

shred: /dev/hda: pass 19/25 (888888)...

shred: /dev/hda: pass 20/25 (bbbbbb)...

shred: /dev/hda: pass 21/25 (db6db6)...

shred: /dev/hda: pass 22/25 (444444)...

shred: /dev/hda: pass 23/25 (666666)...

shred: /dev/hda: pass 24/25 (249249)...

shred: /dev/hda: pass 25/25 (random)...

 资料:

http://www.zhiweinet.com/jiaocheng/2009-03/5328.htm

linux 彻底删除、粉碎文件命令shred

shred是一条终端命令,功能是重复覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原,(参见”shred –help”)。这条命令的功能足够适合实现文件粉碎的功效。

tiny@tiny-laptop:~$ shred --help

用法:shred [选项]... 文件...

多次覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原。

 

长选项必须使用的参数对于短选项时也是必需使用的。

  -f, --force 必要时修改权限以使目标可写

  -n, --iterations=N 覆盖N 次,而非使用默认的3 次

      --random-source=文件 从指定文件中取出随机字节

  -s, --size=N 粉碎数据为指定字节的碎片(可使用K、M 和G 作为单位)

  -u, --remove 覆盖后截断并删除文件

  -v, --verbose 显示详细信息

  -x, --exact 不将文件大小增加至最接近的块大小

  -z, --zero 最后一次使用0 进行覆盖以隐藏覆盖动作

      --help 显示此帮助信息并退出

      --version 显示版本信息并退出

 

如果指定文件为"-",粉碎标准输出的数据。

 

如果加上--remove (-u)选项表示删除文件。默认的方式是不删除文件,因为

覆盖像/dev/hda 等的设备文件是很普遍的,而这些文件通常不应删除。当覆盖

一般文件时,绝大多数人都会使用--remove 选项。

 

警告:请注意使用shred 时有一个很重要的条件:

文件系统会在原来的位置覆盖指定的数据。传统的文件系统符合此条件,但许多现代

的文件系统都不符合条件。以下是会令shred 无效或不担保一定有效的文件系统的

例子:

* 有纪录结构或是日志式文件系统,如AIX 及Solaris 使用的文件系统 (以及

   JFS、ReiserFS、XFS、Ext3 等)

* 会重复写入数据,及即使一部份写入动作失败后仍可继续的文件系统,如使用

   RAID 的文件系统

* 会不时进行快照记录的文件系统,像Network Applicance 的NFS 服务器

* 文件系统是存放于缓存位置,比如NFS 第三版用户端

* 压缩文件系统

在Ext3 文件系统中,以上免责声明仅适用于启用了data=journal 模式的情况,

此时文件日志记录了附加的元数据 shred 的作用将受到影响。在data=ordered(默认)

或data=writeback 模式下shred 仍然有效。

Ext3 日志模式可通过向/etc/fstab 的挂载选项中添加data=something 进行设置,

您可以查看mount 的man 页面以获得详细信息。

另外,文件系统备份和远程镜像可能会

包含不能被删除的文件副本,这将会

允许碎片文件被恢复。 

使用方法举例如下:

粉碎一个名为test.txt的文件命令是: 
$shred test.txt 
粉碎多个文件的命令是: 
$shred test1.txt test2.txt

这两条命令的效果是文件依旧存在,但不再是原来的文件了,对比测试可以通过先编辑一个文本文件后保存,然后使用shred命令覆盖此文件,再打开该文本文件即可看出内容不再是原有内容了。如果想要覆盖的同时删除文件(这才是粉碎的表现么),加上参数 -u,命令变为: 
$shred –u test.txt

覆盖一个挂载分区的文件命令是: 
$shred /dev/hda0        //覆盖IDE接口的第一个磁盘设备的第一分区 
$shred /dev/sda2        //覆盖SCSI或SATA接口的第一个磁盘设备的第三分区

 

在终端下使用shred命令来进行文件粉碎操作实在不方便,得益于Nautilus的可扩展性,我们可以给Ubuntu的Nautilus添加右键菜单来执行shred操作:

在终端下输入命令安装Nautilus-actions(中文名被汉化为“Nautilus动作配置”): 
$sudo apt-get install nautilus-actions

然后单击“系统” –> “首选项” –> “Nautilus动作配置” ->单击“Define a new action”按钮

 

然后在“添加新动作”窗口中输入以下信息:

Context Label: Shred粉碎                             //你可以随便想一个名字,这里是显示在右键菜单的名字 
Tool tip: Shred粉碎机                     //一样可以随便想一个描述,这是停留在右键菜单的提示 
Icon: gtk-dialog-warning                   //可以单击Browse或者下拉菜单中选择一个图标 
路径: shred 
参数: -f -u -v -z %M

 

然后单击“Record all the modified”标签卡,如果只需要这个粉碎右键菜单出现在仅处理文件的时候,那么就单击“仅文件”单选框,同理如果需要出现在仅处理文件夹的时候就单击“仅文件夹”单选框,如果需要文件和文件夹上右键都能出现该粉碎菜单,那么单击“Both”单选框。另外勾选“Appears if selection has multiple files or folders”复选框 

在单击“确定”按钮之后返回“Nautilus动作”窗口,单击“关闭”按钮之后再在终端中输入命令: 
$nautilus –q     //关闭Nautilus进程 
$nautilus         //启动Nautilus进程

这时候再进入主文件夹对一个文件右击,菜单中将出现“Shred粉碎”

资料:

http://blog.sina.com.cn/s/blog_62de66340100kivo.html

 

转载于:https://www.cnblogs.com/nathaninchina/articles/delete_files_totally.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值