当前位置: 首页 > news >正文

Linux之实战命令02:shred应用实例(三十六)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.shred命令介绍
    • 🌻3.代码实例
      • 🐓3.1 删除并覆盖文件
      • 🐓3.2 指定覆盖次数
      • 🐓3.3 仅覆盖不删除文件
      • 🐓3.4 递归覆盖目录中的所有文件

🌻1.前言

本篇目的:Linux之实战命令02:shred应用实例(

🌻2.shred命令介绍

  • shred 是 Unix 和类 Unix 系统中的一个命令行工具,专门用于对文件进行安全删除。其设计目的是通过反复覆盖文件数据,使得文件被删除后难以恢复。传统的文件删除方式通常只是将文件的指针从文件系统中移除,但文件的实际数据仍然存储在磁盘上,这使得数据恢复工具有可能找回已删除的文件。而 shred 则通过多次写入随机数据到文件的存储位置,极大降低了恢复被删除文件的可能性。

  • shred 的核心机制在于它对文件进行多次覆盖。覆盖的次数可以由用户指定,默认情况下,shred 会对文件进行多次随机数据的写入操作,然后再将文件从文件系统中删除。通过这种方式,文件的原始内容会被完全覆盖,从而难以被恢复工具重建。此外,shred 还可以在覆盖数据之后,通过将文件名和元数据进行进一步处理,确保文件在磁盘上彻底消失。

  • 不过,shred 的实际效果依赖于底层文件系统的特性。某些文件系统(如日志型文件系统)可能会在后台将文件数据复制到其他区域,从而使 shred 的覆盖操作并不能完全擦除文件的所有痕迹。此外,现代的存储设备,如固态硬盘(SSD),通常使用写入平衡技术,使得数据并不总是被写入同一个物理位置,这也可能影响 shred 的工作效果。因此,在这些情况下,shred 的数据擦除功能可能并不完全可靠。

  • shred 不仅可以对单个文件进行操作,还能够处理整个磁盘的特定分区或设备。这使得它不仅适用于普通用户删除敏感文件的需求,还适用于那些需要对整个存储设备进行数据清除的场景。通过覆盖磁盘的所有区域,shred 能够确保数据的完整擦除,减少隐私泄露的风险。

  • shred 是一个针对数据安全设计的工具,适用于那些需要确保文件或数据彻底删除的场合。它为用户提供了灵活的选项,使其能够根据具体需求调整覆盖次数和处理方式,确保删除操作的安全性。然而,在某些现代存储设备上,shred 可能无法达到理想的效果,用户在使用时应了解其局限性并结合其他手段来保证数据的安全擦除。

🌻3.代码实例

🐓3.1 删除并覆盖文件

shred -u confidential.txt

解释:

shred:表示将覆盖文件 confidential.txt 的内容。
-u:表示在覆盖文件之后删除文件。

🐓3.2 指定覆盖次数

shred -n 5 confidential.txt

解释:

-n 5:表示指定覆盖文件 5 次。

🐓3.3 仅覆盖不删除文件

shred -n 3 confidential.txt

解释:

-n 3:表示覆盖文件 3 次,但文件不会被删除。

🐓3.4 递归覆盖目录中的所有文件

find /path/to/directory -type f | xargs shred -u

解释:

find:表示找到目录 /path/to/directory 中的所有文件。 xargs:表示将找到的每个文件传递给 shred。
shred -u:表示覆盖每个文件并将其删除。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1.Spring-容器-注册
  • Ubuntu 22.04 源码下载、编译
  • 【数据结构C语言】【入门】【首次万字详细解析】入门阶段数据结构可能用到的C语言知识,一章让你看懂数据结构!!!!!!!
  • 计算机组成原理之计算机系统的工作原理
  • 第一次安装Pytorch
  • Golang | Leetcode Golang题解之第421题数组中两个数的最大异或值
  • MySql主从复制原理
  • docker 升级步骤
  • C++ prime plus-7-編程練習
  • VMware虚拟机因磁盘空间不足黑屏无法登录
  • matlab绘制二维云图,划分区域,并显示每个区域的均值
  • KVM环境下制作ubuntu qcow2格式镜像
  • 基于SpringBoot的漫画网设计与实现
  • 人工智能快速发展下的极端风险管理
  • 力扣中等 33.搜索旋转排序数组
  • 「面试题」如何实现一个圣杯布局?
  • Android Volley源码解析
  • CAP 一致性协议及应用解析
  • go语言学习初探(一)
  • java 多线程基础, 我觉得还是有必要看看的
  • magento 货币换算
  • Markdown 语法简单说明
  • Vue2.0 实现互斥
  • WebSocket使用
  • zookeeper系列(七)实战分布式命名服务
  • 电商搜索引擎的架构设计和性能优化
  • 聊聊flink的BlobWriter
  • 马上搞懂 GeoJSON
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 区块链将重新定义世界
  • 携程小程序初体验
  • 追踪解析 FutureTask 源码
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Spring第一个helloWorld
  • ​马来语翻译中文去哪比较好?
  • # 达梦数据库知识点
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #微信小程序:微信小程序常见的配置传值
  • (1)(1.9) MSP (version 4.2)
  • (19)夹钳(用于送货)
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (七)glDrawArry绘制
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .net framework4与其client profile版本的区别
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .Net8 Blazor 尝鲜
  • .NET导入Excel数据
  • .pop ----remove 删除