Administrator
发布于 2026-04-07 / 10 阅读
0

touch创建文件

touch创建文件

常用:无参
不接任何参数时,touch 会同时更新文件的访问和修改时间;如果文件不存在,则创建空文件。
进阶:

  1. -a仅修改访问时间

tm@server1:~$ ls -lu test.txt
-rw-rw-r-- 1 tm tm 0 Mar 26 17:21 test.txt
tm@server1:~$ touch -a test.txt
tm@server1:~$ ls -lu test.txt
-rw-rw-r-- 1 tm tm 0 Mar 26 17:24 test.txt

ls -lu 或 ls -l --time=atime查看访问时间
2. -m仅修改修改时间

tm@server1:~$ ls -l
total 0
-rw-rw-r-- 1 tm tm 0 Mar 26 17:16 test.txt
tm@server1:~$ touch -m test.txt
tm@server1:~$ ls -l
total 0
-rw-rw-r-- 1 tm tm 0 Mar 26 17:18 test.txt
tm@server1:~$
  1. -c不创建文件(不存在就不创建,存在就修改)

tm@server1:~$ touch -c 123.txt
tm@server1:~$ ls
test.txt
tm@server1:~$ touch -c test.txt
tm@server1:~$ ls -l
total 0
-rw-rw-r-- 1 tm tm 0 Mar 26 17:21 test.txt
tm@server1:~$
  1. -t使用指定的时间戳(格式:[[CC]YY]MMDDhhmm[.ss]

tm@server1:~$ touch -t 202603261200.00 file
tm@server1:~$ ls -l
total 0
-rw-rw-r-- 1 tm tm 0 Mar 26 12:00 file
-rw-rw-r-- 1 tm tm 0 Mar 26 17:21 test.txt
  1. 批量创建空文件

tm@server1:~$ touch file{1..10}.txt
tm@server1:~$ ls
file        file1.txt  file3.txt  file5.txt  file7.txt  file9.txt
file10.txt  file2.txt  file4.txt  file6.txt  file8.txt  test.txt
tm@server1:~$ touch $(seq -f "log%g.txt" 1 5)
tm@server1:~$ ls
file        file2.txt  file5.txt  file8.txt  log2.txt  log5.txt
file10.txt  file3.txt  file6.txt  file9.txt  log3.txt  test.txt
file1.txt   file4.txt  file7.txt  log1.txt   log4.txt
tm@server1:~$ seq -f "log%g.txt" 1 5
log1.txt
log2.txt
log3.txt
log4.txt
log5.txt
  1. find 批量更新

tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:43 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:42 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:42 log1.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log2.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log3.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log4.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log5.txt
tm@server1:~$ find . -name "*.txt" -exec touch {} \;
tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:43 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:42 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:44 log1.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:44 log2.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:44 log3.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:44 log4.txt
-rw-rw-r-- 1 tm tm    0 Mar 26 17:44 log5.txt
  1. 更新目录时间戳

tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:40 a
tm@server1:~$ touch a
tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:43 a
  1. -h修改链接文件本身时间戳,而非链接的目标文件

tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:40 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:40 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log1.txt
tm@server1:~$ touch -hm log1.txt b
tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:40 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:42 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:42 log1.txt
  1. -r参考复制其他文件时间戳

tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:40 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:40 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:34 log1.txt
tm@server1:~$ touch -hm log1.txt b
tm@server1:~$ ls -l
total 4
drwxrwxr-x 2 tm tm 4096 Mar 26 17:40 a
lrwxrwxrwx 1 tm tm    1 Mar 26 17:42 b -> a
-rw-rw-r-- 1 tm tm    0 Mar 26 17:42 log1.txt
  1. --time可调整纳秒尺度时间戳