Linux命令行创建文件、修改文件时间戳 - touch

touch - change file timestamps
touch常用于Linux命令行创建空文件,而从man touch的结果看来,touch主要用于修改时间戳,创建文件只是兼职工作。

常用方式:

  • touch file,如果当前目录内无该文件,则以当前时间创建空文件;如果当前目录内有该文件,则以当前时间修改文件时间戳(访问时间和修改时间);
  • touch -t YearMonthDateHourMinute file,指定时间修改文件时间戳,时间方式如201402232200。
  • touch -a file,只修改访问时间(access timestamp)
  • touch -m file,只修改修改时间(modify timestamp)
  • find . -name "*" -print0 | xargs -0 -I '{}' touch -r '{}' -d '-3 month' '{}',对查找的所有文件,修改时间戳,减 3 个月
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sunnogo@a3e420:~/test/touch$ 
sunnogo@a3e420:~/test/touch$ touch first
sunnogo@a3e420:~/test/touch$ ls -l first
-rw-r--r-- 1 sunnogo sunnogo 0 223 21:56 first
sunnogo@a3e420:~/test/touch$ ls -lu first
-rw-r--r-- 1 sunnogo sunnogo 0 223 21:56 first
sunnogo@a3e420:~/test/touch$
sunnogo@a3e420:~/test/touch$ touch -at 201110101200 first
sunnogo@a3e420:~/test/touch$ ls -l first
-rw-r--r-- 1 sunnogo sunnogo 0 223 21:56 first <----修改时间戳不变
sunnogo@a3e420:~/test/touch$ ls -lu first
-rw-r--r-- 1 sunnogo sunnogo 0 1010 2011 first <----访问时间戳改变
sunnogo@a3e420:~/test/touch$
sunnogo@a3e420:~/test/touch$ touch -mt 201110101200 first
sunnogo@a3e420:~/test/touch$ ls -l first
-rw-r--r-- 1 sunnogo sunnogo 0 1010 2012 first <----修改时间戳改变
sunnogo@a3e420:~/test/touch$ ls -lu first
-rw-r--r-- 1 sunnogo sunnogo 0 1010 2011 first

Written with StackEdit.