Linux 清空文件的方法

简介: Linux 清空文件的方法

1、echo

echo>gpdb-2019-12-16_022908.csv

或者 echo "">


空字符串与null不同。字符串已经是一个对象,因为它可能是空的,而null只是意味着不存在对象。

因此,当您将上面的echo命令重定向到文件中,并使用cat命令查看文件内容时,将打印一个空行(空字符串)。


注意 :>和>>区别。>会先清空文件,再写入内容;>>会将内容追加到现有文件的尾部,若重定向的fd不存在则新建。


该文件198GB,第一次使用rm -rf暴力删除,命令执行了很久(约30mins),期间服务不可用,使用echo 5s该文件即被清空,效率之高让人赞叹,为啥这么快?是如何做到的?

那为什么将大文件重定向如此之快呢?

在理解这个概念之前需要了解文件描述符是什么?


重定向

  1. bash fork了一个进程,打开数据文件。
  2. 然后把文件句柄搞到0句柄上,这个进程execve运行b.out。(https://yq.aliyun.com/articles/617809?utm_content=m_1000008029)
  3. 然后b.out直接读取数据。
  4. 结论 :只读一次。

2、使用带/dev/null的cat/ cp/ dd实用程序清空文件

cat /dev/null> 1.log

3.使用truncate命令清空文件

-s指定文件大小的选项。要清空文件内容,请使用大小为0

truncate -s 0 1.log

4、重定向到空来清空文件内容

使用shell重定向null(不存在的对象)清空或清空文件内容

> 1.log
目录
相关文章
|
22小时前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
22小时前
|
Linux 开发工具
Linux E325: 注意 发现交换文件 “*.swp“
Linux E325: 注意 发现交换文件 “*.swp“
15 0
|
22小时前
|
Linux Shell Python
如何计算 Linux 上文件中的空行数?
【5月更文挑战第11天】
11 0
|
22小时前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
22小时前
|
Linux
如何在 Linux 中递归更改文件的权限?
【5月更文挑战第10天】
16 3
|
22小时前
|
Linux
Linux如何查询较大文件的方法
【5月更文挑战第8天】Linux如何查询较大文件的方法
7 0
|
22小时前
|
Linux 网络安全
xmanager 4 连接SuSE linux server 11方法
xmanager 4 连接SuSE linux server 11方法
|
22小时前
|
Linux 程序员 Shell
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法
|
22小时前
|
Linux Shell
Linux操作系统下查找大文件或目录的技巧
Linux操作系统下查找大文件或目录的技巧
11 2
|
22小时前
|
算法 Linux
Linux:文件增删 & 文件压缩指令
Linux:文件增删 & 文件压缩指令
9 0

热门文章

最新文章