【问题标题】:Linux command to delete file contentLinux命令删除文件内容
【发布时间】:2022-01-28 17:48:27
【问题描述】:

我想删除文件main_copy.json的内容。

如果我使用下面的命令,我会感到困惑,它会删除所有这些目录中的文件吗?

  [user@yyy ~]$ > /AAA/BBB/CCC/DDD/main_copy.json

【问题讨论】:

    标签: linux


    【解决方案1】:

    '>' 字符是 shell(通常是 Bash)重定向字符。您在 shell 的命令提示符下,可能是 Bash,但您没有指定。您编写的命令基本上说“将重定向到文件/AAA/BBB/CCC/DDD/main_copy.json”。最终结果是将文件截断为零长度,从而有效地删除其内容。

    由于 '>' 的参数中没有空格,因此 bash 将其视为单个参数,因此您的命令不可能删除路径中任何目录中的任何文件的内容。在任何情况下,'>' 重定向运算符都不适用于多个参数。所以如果你说:

    [user@yyy ~]$ > /AAA /BBB/CCC/DDD/main_copy.json
    

    最终结果会发出错误,因为您无法重定向到目录,只能重定向到文件。如果你说:

    [user@yyy ~]$ > /AAA/myfile.txt BBB/CCC/DDD/main_copy.json
    

    shell 会将文件 myfile.txt 截断为零长度(或创建一个长度为零的文件,如果它不存在),然后将第二个参数视为可执行命令,这当然会失败,例如 "权限被拒绝”,因为它不是可执行文件。

    希望对您有所帮助。 Bash(和其他 shell)是一种复杂的野兽,需要数年时间才能真正学好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      相关资源
      最近更新 更多