1、echo
echo>gpdb-2019-12-16_022908.csv
或者 echo "">
空字符串与null不同。字符串已经是一个对象,因为它可能是空的,而null只是意味着不存在对象。
因此,当您将上面的echo命令重定向到文件中,并使用cat命令查看文件内容时,将打印一个空行(空字符串)。
注意 :>和>>区别。>会先清空文件,再写入内容;>>会将内容追加到现有文件的尾部,若重定向的fd不存在则新建。
该文件198GB,第一次使用rm -rf暴力删除,命令执行了很久(约30mins),期间服务不可用,使用echo 5s该文件即被清空,效率之高让人赞叹,为啥这么快?是如何做到的?
那为什么将大文件重定向如此之快呢?
在理解这个概念之前需要了解文件描述符是什么?
重定向
- bash fork了一个进程,打开数据文件。
- 然后把文件句柄搞到0句柄上,这个进程execve运行b.out。(https://yq.aliyun.com/articles/617809?utm_content=m_1000008029)
- 然后b.out直接读取数据。
- 结论 :只读一次。
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