跟我一起学嵌入式linux开发之常用命令:touch创建新文件或修改文件的时间属性
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.使用场景
如果创建一个新文件有很多种方法,比如:
vimfilecat>fileecho"hello">filetouchfile等等方法。。。。
touch 命令不仅可以创建新文件,而且可以修改文件的时间属性。
什么时候需要修改时间属性呢?我先讲个故事。
在很久以前,我们在某台服务器上开发了某款程序,当时服务器时区是系统安装默认配置,时间也不对,但是一直在本地使用makefile 编译程序,所以也没发现问题。后来我们设备升级,时间调整为正常时间之后,再次使用makefile编译时,出现了很多错误,提示文件修改时间为未来的N多秒!这时候就是 touch 出场的时候了!
如果不加参数的对一个已经存在的文件执行 touch 命令,那么该文件的所有时间戳都会变成当前时间,如下:
$ lshello hello.c$ file=zicreate.txt$ touch $file && stat $file ; sleep5; touch $file && stat $file File: ‘zicreate.txt’ Size:Blocks:IO Block:4096regular empty fileDevice:802h/2050d Inode:6553615Links:1Access: (0644/-rw-r--r--) Uid: (/ root) Gid: (/ root)Context: unconfined_u:object_r:user_tmp_t:s0Access:2018-01-1014:43:33.692235966-0500Modify:2018-01-1014:43:33.692235966-0500Change:2018-01-1014:43:33.692235966-0500Birth: - File: ‘zicreate.txt’ Size:Blocks:IO Block:4096regular empty fileDevice:802h/2050d Inode:6553615Links:1Access: (0644/-rw-r--r--) Uid: (/ root) Gid: (/ root)Context: unconfined_u:object_r:user_tmp_t:s0Access:2018-01-1014:43:38.695236304-0500Modify:2018-01-1014:43:38.695236304-0500Change:2018-01-1014:43:38.695236304-0500Birth: -
由于 touch 的其他使用方法使用机会太少,不再一一列举。发现一张很好的图,来源不明,整理如下:
领取专属 10元无门槛券
私享最新 技术干货