【发布时间】:2022-01-28 17:48:27
【问题描述】:
我想删除文件main_copy.json的内容。
如果我使用下面的命令,我会感到困惑,它会删除所有这些目录中的文件吗?
[user@yyy ~]$ > /AAA/BBB/CCC/DDD/main_copy.json
【问题讨论】:
标签: linux
我想删除文件main_copy.json的内容。
如果我使用下面的命令,我会感到困惑,它会删除所有这些目录中的文件吗?
[user@yyy ~]$ > /AAA/BBB/CCC/DDD/main_copy.json
【问题讨论】:
标签: linux
'>' 字符是 shell(通常是 Bash)重定向字符。您在 shell 的命令提示符下,可能是 Bash,但您没有指定。您编写的命令基本上说“将
由于 '>' 的参数中没有空格,因此 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)是一种复杂的野兽,需要数年时间才能真正学好。
【讨论】: