LINUX为什么touch可以连续创建而没有报错说main.cpp已经存在呢?

acs@82c5c549ded2:$ touch main.cpp
acs@82c5c549ded2:
$ touch main.cpp
acs@82c5c549ded2:$ touch main.cpp
acs@82c5c549ded2:
$ ls
main.cpp
acs@82c5c549ded2:~$

touch的作用是更改文件时间,文件已存在则不创建文件。你可以在main.cpp里写点东西,在touch看看


$ touch --help
用法:touch [选项]... 文件...
将所指定的每个文件的访问时间和修改时间更改为当前时间。

除非提供 -c 或 -h 选项,否则指定不存在的文件将会被创建为空文件。

如果所指定文件名为 - 则特殊处理,程序将更改与标准输出相关联的文件的
访问时间。

必选参数对长短选项同时适用。
  -a                    只更改访问时间
  -c, --no-create       不创建任何文件
  -d, --date=字符串     使用指定字符串表示时间而非当前时间
  -f                    (忽略)
  -h, --no-dereference          会影响符号链接本身,而非符号链接所指示的目的地
                                (当系统支持更改符号链接的所有者时,此选项才有用)
  -m                    只更改修改时间
  -r, --reference=文件   使用指定文件的时间属性而非当前时间
  -t 时间戳              使用给定 [[CC]YY]MMDDhhmm[.ss] 的时间戳而非当前时间
      --time=类型        修改指定类型的时间:
                           若所指定类型是 access、atime 或 use:与 -a 等效
                           若所指定类型是 modify 或 mtime:与 -m 等效
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

请注意,-d 和-t 选项可接受不同的时间/日期格式。