2.2 touch 命令

touch 是 Linux/Unix 系统中用于 创建空文件 和 修改文件时间戳 的命令。

touch 命令会在没有文件时创建此空文件,如果有此文件时会修改此文件的访问时间和修改时间。

示例

weimingze@mzstudio:~$ touch a.py
weimingze@mzstudio:~$ ls -l a.py hello.py
-rw-rw-r-- 1 weimingze weimingze    0 May 16 14:10 a.py
-rw-rw-r-- 1 weimingze weimingze   23 May 16 13:02 hello.py
weimingze@mzstudio:~$ touch hello.py
weimingze@mzstudio:~$ ls -l a.py hello.py
-rw-rw-r-- 1 weimingze weimingze    0 May 16 14:10 a.py
-rw-rw-r-- 1 weimingze weimingze   23 May 16 14:11 hello.py

可见 使用 touch a.py 命令,在没有 a.py 这个文件的时候会创建这个文件。

使用 touch hello.pyhello.py 这个文件的修改时间进行的修改。

touch 的常用选项

选项
说明
-a
仅更新访问时间(atime)
-m
仅更新修改时间(mtime)
-c
不创建新文件(仅当文件存在时才更新时间戳)
-d
指定时间(而不是当前时间)
-t
使用自定义时间格式[[CC]YY]MMDDhhmm[.ss]
-r
参照另一个文件的时间(复制时间戳)

特殊文件名的处理

当我们要创建一个含有空格等的特殊文件名是,需要将文件名或整个路径名用英文的双引号(")括起来。

如我要创建一个 hello world.py 文件时,这个文件名中有空格,如果我们运行 touch hello world.py 这个命令,就创建了 helloworld.py 两个文件。

正确的做法是:

touch "hello world.py"

还有另外一种做法是将空格进行转义(类似于Python中字符的转义),就是用反斜杠加一个空格('\ ') 代替文件名中的一个空格(' ')。

如上述创建也可以使用如下命令完成:

touch hello\ world.py

练习: