linux 使用 touch 修改文件的修改时间

rsync有时候因为服务器时间错了,需要更改文件的修改时间时间,可以使用 touch命令来修改文件的修改时间:

1
touch -c -m -t 201101110000 teadme.txt

修改readme.txt为2011年1月11日零时零分修改

如果批量修改文件和目录,则使用

1
find /home/www/site -exec touch -c -m -t 201101110000 {} \;

即可把/home/www/site下的所有文件和目录都改变修改时间。

注意上面命令中的空格。

touch [-acdmt] 文件参数:

-a : 仅修改access time。

-c : 仅修改时间,而不建立文件。

-d : 后面可以接日期,也可以使用 –date=”日期或时间”

-m : 仅修改mtime。

-t : 后面可以接时间,格式为 [YYMMDDhhmm]

如 touch -c -t 0906270730 file

Usage: touch [OPTION]… FILE…
Update the access and modification times of each FILE to the current time.

Mandatory arguments to long options are mandatory for short options too.
-a change only the access time
-c, –no-create do not create any files
-d, –date=STRING parse STRING and use it instead of current time
-f (ignored)
-m change only the modification time
-r, –reference=FILE use this file’s times instead of current time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
–time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
–help display this help and exit
–version output version information and exit

Note that the -d and -t options accept different time-date formats.

If a FILE is -, touch standard output.