每天一个linux命令:touch

每天一个linux命令:touch

更多精彩请关注:www.zicreate.com

1.命令功能

touch 用来创建新文件或修改文件的时间属性。touch 命令的主要功能并不是为了创建一个空文件哦。

2.命令格式

touch [options] file-list

3.命令参数

-a:或--time=atime或--time=access或--time=use  只更改存取时间;
-c:或--no-create  不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify  只更该变动时间;
-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间>  使用指定的日期时间,而非现在的时间;

4.使用场景

如果创建一个新文件有很多种方法,比如:

    vim file
    cat > file
    echo "hello" > file
    touch  file
    等等方法。。。。

touch 命令不仅可以创建新文件,而且可以修改文件的时间属性。

什么时候需要修改时间属性呢?我先讲个故事。

在很久以前,我们在某台服务器上开发了某款程序,当时服务器时区是系统安装默认配置,时间也不对,但是一直在本地使用makefile 编译程序,所以也没发现问题。后来我们设备升级,时间调整为正常时间之后,再次使用makefile编译时,出现了很多错误,提示文件修改时间为未来的N多秒!这时候就是 touch 出场的时候了!

如果不加参数的对一个已经存在的文件执行 touch 命令,那么该文件的所有时间戳都会变成当前时间,如下:

$ ls
hello  hello.c
$ file=zicreate.txt
$ touch $file && stat $file ; sleep 5 ; touch $file && stat $file
  File: ‘zicreate.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 6553615     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-01-10 14:43:33.692235966 -0500
Modify: 2018-01-10 14:43:33.692235966 -0500
Change: 2018-01-10 14:43:33.692235966 -0500
 Birth: -
  File: ‘zicreate.txt’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 6553615     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-01-10 14:43:38.695236304 -0500
Modify: 2018-01-10 14:43:38.695236304 -0500
Change: 2018-01-10 14:43:38.695236304 -0500
 Birth: -

由于 touch 的其他使用方法使用机会太少,不再一一列举。发现一张很好的图,来源不明,整理如下:
每天一个linux命令:touch_第1张图片

你可能感兴趣的:(linux)