linux上清空一个文件,技术|Linux 下清空或删除大文件内容的 5 种方法-程序员宅基地

技术标签: linux上清空一个文件  

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何 Linux 命令行编辑器 去打开这些文件。那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法。

注意:在我们进一步深入了解这些方法之前,请记住: 由于在 Linux 中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件。清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误。

前面已经说道,下面的这些方法都是从命令行中达到清空文件的目的。

提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本。

1. 通过重定向到 Null 来清空文件内容

清空或者让一个文件成为空白的最简单方式,是像下面那样,通过 shell 重定向 null (不存在的事物)到该文件:

# > access.log

d8a3472172b65217de1460b39be25a15.png

在 Linux 下使用 Null 重定向来清空大文件

2. 使用 ‘true’ 命令重定向来清空文件

下面我们将使用 : 符号,它是 shell 的一个内置命令,等同于 true 命令,它可被用来作为一个 no-op(即不进行任何操作)。

另一种清空文件的方法是将 : 或者 true 内置命令的输出重定向到文件中,具体如下:

# : > access.log

# true > access.log

2214312a85f2497b30c71de52e78dcf8.png

使用 Linux 命令清空大文件

3. 使用 cat/cp/dd 实用工具及 /dev/null 设备来清空文件

在 Linux 中, null 设备基本上被用来丢弃某个进程不再需要的输出流,或者作为某个输入流的空白文件,这些通常可以利用重定向机制来达到。

所以 /dev/null 设备文件是一个特殊的文件,它将清空送到它这里来的所有输入,而它的输出则可被视为一个空文件。

另外,你可以通过使用 cat 命令 显示 /dev/null 的内容然后重定向输出到某个文件,以此来达到清空该文件的目的。

# cat /dev/null > access.log

ace4dced659c551516193abc7741d2fb.png

使用 cat 命令来清空文件

下面,我们将使用 cp 命令 复制 /dev/null 的内容到某个文件来达到清空该文件的目的,具体如下所示:

# cp /dev/null access.log

9a3ffb4e102f1aa3155ac4faba870a10.png

使用 cp 命令来清空文件

而下面的命令中, if 代表输入文件,of 代表输出文件。

# dd if=/dev/null of=access.log

a6aebf99671bd7de5a6dee92bdc047bc.png

使用 dd 命令来清空文件内容

4. 使用 echo 命令清空文件

在这里,你可以使用 echo 命令 将空字符串的内容重定向到文件中,具体如下:

# echo "" > access.log

或者

# echo > access.log

f5df52218f0c5213384e99aa17b8ae72.png

使用 echo 命令来清空文件

注意:你应该记住空字符串并不等同于 null 。字符串表明它是一个具体的事物,只不过它的内容可能是空的,但 null 则意味着某个事物并不存在。

基于这个原因,当你将 echo 命令 的输出作为输入重定向到文件后,使用 cat 命令 来查看该文件的内容时,你将看到一个空白行(即一个空字符串)。

要将 null 做为输出输入到文件中,你应该使用 -n 选项,这个选项将告诉 echo 不再像上面的那个命令那样输出结尾的那个新行。

# echo -n "" > access.log

bf01777f7231eb9283ab256c8a793ea2.png

使用 Null 重定向来清空文件

5. 使用 truncate 命令来清空文件内容

你可以利用它和 -s 参数来特别指定文件的大小。要清空文件的内容,则在下面的命令中将文件的大小设定为 0:

# truncate -s 0 access.log

9c180e9fcdff28621f7d0deb548dade2.png

在 Linux 中截断文件内容

我要介绍的就是这么多了。在本文中,我们介绍了几种通过使用一些简单的命令行工具和 shell 重定向机制来清除或清空文件内容的方法。

上面介绍的这些可能并不是达到清空文件内容这个目的的所有可行的实践方法,所以你也可以通过下面的评论栏告诉我们本文中尚未提及的其他方法。

本文由 LCTT 原创编译,Linux中国 荣誉推出 linisi.svg

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_29386469/article/details/116544648

智能推荐

【20210326期AI简报】用RISC-V微控制器开发难不难?行人搜索AI框架新突破~-程序员宅基地

文章浏览阅读430次。导读:本期为 AI 简报 20210326 期,将为您带来 9 条相关新闻,明日朝花节,有时候要冲,有时候也要出去走走~本文一共 字,通篇阅读结束需要 7~11 分钟1. 首个无需锚框(A..._riscv支持ros吗?

JavaScript 事件兼容性写法_js的事件怎么写-程序员宅基地

文章浏览阅读143次。<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <p id=&_js的事件怎么写

高斯噪声 高斯白噪声_高斯噪声和高斯白噪声-程序员宅基地

文章浏览阅读3.2k次。高斯噪声 高斯白噪声 Matlab WGN【原文出处】:http://www.cnblogs.com/YoungHit/archive/2012/03/09/2388230.html本文科普一下高斯白噪声(white Gaussian noise,WGN)。  百度百科上解释为“高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布”,听起来有些晦_高斯噪声和高斯白噪声

matlab GUI课程设计——简易计算器2_matable设计计算器-程序员宅基地

文章浏览阅读507次。matlab GUI课程设计——简易计算器_matable设计计算器

Dynamics 365 Fo 开发环境无法用IE之外的浏览器访问_dynamic365 fo-程序员宅基地

文章浏览阅读181次。开发环境无法用IE之外的浏览器访问_dynamic365 fo

mybatis 之 if test 条件,参数为0时,查询条件未输出_if [ $# == 0 ]-程序员宅基地

文章浏览阅读3.1k次。mybatis 之 if test 条件,参数为0时,查询条件未输出_if [ $# == 0 ]

随便推点

python用于pmc排产可以吗_生产计划员每天都在抓狂,插单、排产问题到底该怎么解决?...-程序员宅基地

文章浏览阅读512次。紧急插单是指那些未安排在确定好的订单计划中,却由于某些原因必须优先交货的订单,这些订单会打乱原有的生产计划安排。在竞争日益激烈的市场环境中,通过及时响应紧急插单,迅速准确地完成订单交付,增加客户满意度和忠诚度,企业可以获得比竞争者更多的利润。大多数企业都处于紧急插单频发且生产计划流于形式的不良状态。在企业的工厂里面经常可以看到如下几个场景:PMC部说:“我计划排得好好的,但是业务部、甚至老..._python pmc算法

AltiumDesigner20画图不求人13 | 提高AD20启动速度方法九取消一些相关的元件选择 | 视频教程 | 你问我答_怎么提高ad流畅度-程序员宅基地

文章浏览阅读1.1k次。很多芯粉都遇到的问题就是AD20启动时间长,需要感觉N久的时间才能启动起来,今天为大家介绍可以提高AD20启动时间的方法八。取消一些相关的元件选择。视频教程AltiumDesigner画图不求人13| 提高AD20运行速度,取消一些元器件软件安装步骤打开Altium Designer,点击右上角小齿轮,进入Preferences。在Preferences属性窗口中,选择Data Management下的Parts Providers,将红框内的勾选全部去掉。大..._怎么提高ad流畅度

Qt实现截图之二 截图裁剪框实现方案1 窗口组合方式_qt实现裁剪选择框-程序员宅基地

文章浏览阅读1.2k次。截图相关介绍参考Qt实现截图之一整个截图分为两层,一层为截图显示区,一层为裁剪选着层,裁剪选择层蒙在截图显示区之上。本节介绍一种方案实现裁剪框。裁剪层分为5个区域,上下左右和中间,分别代表5个QWidget, 中间区域即为需要裁剪的区域-高亮区域,没有截图时此区域不存在。1.布局top, left,right, bottom 是个窗体均设置半透明颜色,mid是全透明效果就是裁剪区域void MaskFrameBase::setup(){ this->set._qt实现裁剪选择框

QT使用CDB远程调试_qt cdb-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏11次。1、开发环境:本地端:1)win 102)IDE Qt Creator 4.8.03) CDB 调试环境 ,因为我有装VS 2017 的环境以及前期安装过 Debugging Tools for Windows 所以这就不讲了,环境没搭好的朋友自行百度一下远程主机配置:win 7 32bit 注:如果要调试64位要把X86改X641)、创建文件夹在桌面创建了【Debug】文件夹方便调试和设置C:\Users\Administrator\Desktop\Debug2)、环境变量设_qt cdb

centos7/rhel7升级openssh7.4p1到openssh8.5p1_openssh 7.4p1升级8.5p1-程序员宅基地

文章浏览阅读793次。在centos7.x/rhel7.x的版本下 ,默认的openssh的版本都是7.4p1,但是该版本目前已经有很多漏洞,经常被安全扫描扫出来,生产环境中经常需要升级openssh。我们本次升级是在centos7.5下从openssh7.4p1升级到openssh8.5p1,下面是升级过程。1、升级准备本次升级需要两个文件:redhat6and7-openssh8.5update.shopenssh-update-8.5.zip下载地址见我上传的资源:https://mp.csdn.n_openssh 7.4p1升级8.5p1

华为麒麟990芯片发布;谷歌宣布开源创新隐私保护技术;阿里20亿美元全资收购网易考拉;中国联通将设立100亿5G创新基金……...-程序员宅基地

文章浏览阅读578次。关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了..._麒麟990安全芯片防得住黑客吗

推荐文章

热门文章

相关标签