touch
Linux touch 命令
在 Linux 下运用 touch 命令创建一个空文件。当然我们也可以使用其他命令例如 vi, nano 或是任意一个编辑工具来实现。但是你可能需要更多的步骤来完成操作。其实你要知道 touch 命令的主要功能并不是为了创建一个空文件
什么是 touch 命令
众所周知,每个文件都被附有时间戳。这个时间戳记包括访问时间和修改时间。而 Touch 命令主要就是用来修改文件的访问时间和修改时间。
为什么需要使用 touch 命令
既然 touch 命令描述的是改变时间戳,那么我们可能会想为什么我们需要去改变时间戳呢?这个问题会引发我们的深思。然而,我想有个理由可以解释为什么我们需要使用它。如果你参加了一个全球范围的开源项目,那么时间戳可能变得很重要。编译源代码文件可能需要同一地区的时间戳。如果未统一,程序可能会编译失败。
不带任何选项下运行 touch(如果源文件存在,则表示修改源文件的时间(包括mtime、ctime、atime一同修改,如果源文件不存在表示创建一个空文件)
最简单的使用 touch 命令。只需键入:
$ touch file_name
请观察下面的一张截图。
File_1.txt原来的时间戳是 12:42。在我们使用 touch 命令后,它改变为了 17:08。由此看出,默认情况下,touch 会将文件的时间戳改为当前时间。
只改变访问时间
正如我们之前提到的,每个文件都附有访问时间和修改时间。上面的时间戳是 17:08。我们可以看更多的细节。
我们发现访问时间和修改时间的值是相同的都是 17:08:35 ,还有它们属于同一时区 GMT +7。
如果现在我们要只改变访问时间,我们需要使用-a选项。修改文件的atime时间,则文件的ctime也会被一同修改。
$ touch -a file_1.txt
如你所见,访问时间变为了 17:51:37 ,但是修改时间仍为17:08:35。
只改变修改时间
使用-m选项来修改文件的修改实现,文件的修改时间呗改变时则ctime会一同被修改。
$ touch -m file_2.txt
现在修改时间从 12:42:20 改为了 17:57:20。请注意,当文件被访问或修改时,状态改变时间域的值总会对其记录。
更改为自定义时间戳
使用-t选项来修改文件的时间为自定义时间戳,该选项只会修改文件的mtime和ctime时间,atime时间不会被修改
从上面示例示例中的 file_2.txt,我们看出它的时间戳是:
访问时间:12:42:20 修改时间:17:57:20
执行日期:2014-01-14
假如我们想要将访问时间和修改时间改为2014年1月12日 09:58:27。我们可以用下列命令来完成:
$ touch -t 201401120958.27 file_2.txt
-t 选项语法组成 :
[[CC]YY]MMDDhhmm [.SS]
CC - 年份的前两位
YY - 年份的后两位 MM - 月份 [01-12] DD - 日期 [01-31]
hh - 时 [00-23] mm - 分 [00-59] SS - 秒 [00-61]
改变日期和时间的另一种方式
也可以使用 -d 选项来修改文件的时间
更改指定日期
举例来说,我们有个名为 file_3.txt 的文件,它的相关属性在下面的截图中展示了。
现在我们要将日期2014年1月14日改为2013年12月20日。可以使用下列命令:
$ touch -d '10-December-2013' file_3.txt
不出意料,访问时间和修改时间的日期已经改为了2013年12月10日。
改变时区
改变指定文件的GMT的时间使用-d选项。先让file_3.txt 移回当前时间。
$ touch file_3.txt
不难发现 file_3.txt 的时区为 GMT +0700,要改为 GMT3 时区,我们只需要键入如下命令:
$ touch -d GMT3 file_3.txt
好的,现在时间已经改为了 10:00:00 AM。
结合参数下使用-d选项
还可以用很酷的方式使用-d选项。请观察下面的图片。
我们可以将单词 next Sunday 和 GMT 3合成一个值,而 touch 命令仍然能识别它。日期已经改为了2014年1月21日,而当前的日期为2014年1月14日。
还有另一个-d选项的示例。 首先,我们要将file3_3.txt重置到当前日期和时间。
$ touch file_3.txt
然后我们尝试这个命令:
$ touch -d '1 year ago 13:43:07' file_3.txt
太震撼了,Touch 甚至能识别单词‘1 year ago’。现在的日期以及时间已经改为了2013年1月14日,13:43:07。
创建一个空文件
当你运行 touch 命令目标文件不存在时,touch 会创建一个同名的空文件。
$ touch file_10.txt
同时创建多个文件
你可以用空格将目标文件分割开来,以此来创建多个文件。
$ touch doc_10.txt doc_20.txt doc_30.txt
同步文件或目录的时间戳
-r将file2的是将同步为file1相同的时间(touch -r file1 file2,此时file2的mtime和atime将被修改为一样的时间)
总结
如果你要处理关于文件或目录的时间戳问题,那么 Touch 会对你很有用的。一如既往得你也可以
touch的更多相关文章
- mkdir,rmdir,cp,rm,mv,cat,touch用法
一.mkdir新建目录 1.进入tmp目录,查看该目录下面的子目录 [root@localhost ~]# cd /tmp[root@localhost tmp]# lshsperfdata_root ...
- UC浏览器中touch事件的异常记录
以前也在UC上面栽过几个坑,不过都是页面显示方面的.上个周的时候,商品详情页重做,要添加个上拉显示详情的效果. 有两个条件需要判断: 1.是否到达底部: 2.到达底部之后拖动的y轴距离. 效果写完后, ...
- 移动端web开发,click touch tap区别
转自: http://blog.csdn.net/sly94/article/details/51701188 移动端用tap时会有穿透问题 一:click与tap比较 click与tap都会触发点击 ...
- 手机端html5触屏事件(touch事件)
touchstart:触摸开始的时候触发 touchmove:手指在屏幕上滑动的时候触发 touchend:触摸结束的时候触发 而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点( ...
- 移动端开发概览【webview和touch事件】
作为一个前端,而且作为一个做移动端开发的前端,那意味着你要有三头六臂,跟iOS开发哥哥一起打酱油,跟Android开发哥哥一起修bug... Android vs Ios 我在webkit内核的chr ...
- 手持设备点击响应速度,鼠标事件与touch事件的那些事
前言 现在一直在做移动端的开发,这次将单页应用的网页内嵌入了app,于是老大反映了一个问题:app应用点击响应慢!我开始不以为然,于是拿着网页版的试了试,好像确实有一定延迟,于是开始了研究,最后选择了 ...
- touch命令
[touch] 改变文件的时间戳 命令格式: touch [OPTION]... FILE... 命令功能: 更新每个文件的访问和修改时间到当前时间或建立一个不存在的文件 命令参数: -a ...
- iOS 事件传递(Touch事件)
先总说如下: 1.当手指触摸到屏幕时,会产生UITouch对象和UIEvent对象. 2.这两个对象产生后会被传递到UIApplication管理的一个事件队列中. 3.再有UIApplication ...
- Touch ID 实现
Touch ID 1.要求 机型:iPhone 5s以上 系统:iOS8以上 框架:#import <LocalAuthentication/LocalAuthentication.h> ...
随机推荐
- JSP动作元素——————理论篇
JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param 在 jsp:include.js ...
- Ural 1225. Flags 斐波那契DP
1225. Flags Time limit: 1.0 secondMemory limit: 64 MB On the Day of the Flag of Russia a shop-owner ...
- PHP 原创视频教程-网站开发新手视频教程
PHP 原创视频教程-网站开发新手视频教程 有偿招徒弟,,视频免费提供. 本视频教程,面向的是毫无经验的新手,快速上手的. 第一次做视频做的不好的,请各位看官多多包含. 第一部分,HTML 视频教程 ...
- Asp.net 设置GridView自适应列宽不变形
动态绑定的GridView由于列数不固定,而列又太多,这样设置GridView固定宽度就不能满足需求了.为此整理了两种方法来达到GridView自适应列宽不变形的效果. //在GridView的行数据 ...
- Python版设计模式: 创建型模式:单例模式和工厂模式家族
一. 单例模式(Singleton) 所谓单例模式,也就是说不管什么时候都要确保只有一个对象实例存在.很多情况下,整个系统中只需要存在一个对象,所有的信息都从这个对象获取,比如系统的配置对象,或者是线 ...
- 以 Console 方式运行、调试、编译 .Net 编写的 Windows 服务
经常看到一些人在调试 Windows 服务时,很执著的在附加进程后调试!其实 .Net 编写的 Windows 应用程序,包括 Windows 服务都可以编译成 Console 程序!甚至于 ASP. ...
- sql 删除所有表
sql删除所有表语句: use 数据库名(是要删除表的所在的那个数据库的名称) GO declare @sql varchar(8000) while (select count(*) from sy ...
- 滚来滚去,滚来滚去...Scroller完全解析
API: 1 mScroller.getCurrX() //获取mScroller当前水平滚动的位置 2 mScroller.getCurrY() //获取mScroller当前竖直滚动的位置 3 m ...
- mac 10.11.6 自带apache配置记录
详细记录使用自带apache的一些问题 开启apache服务 作为2016年的新版本os,在系统偏好设置里没有网络共享了,所以可以通过终端,直接开启apache服务器: 开启apache:sudo a ...
- 文件共享锁定数溢出-IWorkspaceEdit.StopEditing
在批量保存Feature至本地mdb的时候,当Feature的数量超过一定的值(该值不确定是不是Access文件的MaxLocksPerFile值,因为当MaxLocksPerFile为9500时,F ...