00. 目录
01. 命令概述
touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。
touch命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项。
注意:在修改文件的时间属性的时候,用户必须是文件的属主,或拥有写文件的访问权限。
02. 命令格式
用法:touch [选项]... 文件...
- 1
03. 常用选项
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项。
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间。
长选项必须使用的参数对于短选项时也是必需使用的。
-a 只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用指定字符串表示时间替代当前时间
-f (忽略)
-h, --no-dereference 会影响符号链接本身,替代符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
-m 只更改修改时间
-r, --reference=文件 使用指定文件的时间属性替代当前时间
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
--time=WORD 使用WORD 指定的时间:access、atime、use 都等于-a
选项的效果,而modify、mtime 等于-m 选项的效果
--help 显示此帮助信息并退出
--version 显示版本信息并退出
请注意,-d 和-t 选项可接受不同的时间/日期格式。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
04. 参考示例
4.1 创建新文件
[deng@localhost test]$ touch file
[deng@localhost test]$ ls -l file
-rw-rw-r-- 1 deng deng 0 7月 13 23:54 file
[deng@localhost test]$
- 1
- 2
- 3
- 4
4.2 创建多个文件,文件之间以空格分隔
[deng@localhost test]$ touch 20190713.log 20190712.log
[deng@localhost test]$ ls
20190712.log 20190713.log b c d dir dir1 file systemd
[deng@localhost test]$
- 1
- 2
- 3
- 4
4.3 更改文件的最近访问和最近更改时间
//查看文件的属性信息
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:54:09.042723645 +0800
最近更改:2019-07-13 23:54:09.042723645 +0800
最近改动:2019-07-13 23:54:09.042723645 +0800
创建时间:-
//修改对应的时间戳
[deng@localhost test]$ touch file
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:56:10.302949855 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:56:10.302949855 +0800
创建时间:-
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
4.4 只更改最近更改时间
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:56:10.302949855 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:56:10.302949855 +0800
创建时间:-
[deng@localhost test]$ touch -a file
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:57:25.086046773 +0800
创建时间:-
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
4.5 只更改修改时间
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:57:25.086046773 +0800
创建时间:-
[deng@localhost test]$ touch -m file
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:58:41.835146234 +0800
最近改动:2019-07-13 23:58:41.835146234 +0800
创建时间:-
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
4.6 更改文件时间戳
[deng@localhost test]$ touch -t 201907132359.30 file
[deng@localhost test]$ stat file
文件:"file"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:204100131 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ deng) Gid:( 1000/ deng)
最近访问:2019-07-13 23:59:30.000000000 +0800
最近更改:2019-07-13 23:59:30.000000000 +0800
最近改动:2019-07-13 23:59:44.027226834 +0800
创建时间:-
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
4.7 使用指定文件的时间属性替代当前时间
[deng@localhost test]$ ls -l b c
-rw-rw-r-- 1 deng deng 0 7月 13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月 13 23:28 c
[deng@localhost test]$ ls -l b file
-rw-rw-r-- 1 deng deng 0 7月 13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月 13 23:59 file
//将文件file的时间戳改为与b文件的时间戳相同
[deng@localhost test]$ touch -r b file
[deng@localhost test]$ ls -l b file
-rw-rw-r-- 1 deng deng 0 7月 13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月 13 23:28 file
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
05. 扩展
命令 stat 用于查看文件的相关信息,包含以下三个时间。
最近访问:表示文件访问时间,当文件被读取时会更新这个时间,但是使用 more、less、tail 和 ls 等命令查看时,访问时间不会变。
最近更改:表示文件的修改时间,这指的是文件内容的修改
最近改动:表示文件属性改变时间,比如通过 chmod 命令更改文件属性时,会更新最近改动时间。
touch 命令以 [[CC]YY]MMDDhhmm[.SS]
格式指定新时间戳的日期和时间,相关变量详细信息如下所示:
CC 指定年份的前两位数字(即:世纪数)
YY 指定年份的后两位数字(即:某世纪中的年数)
MM 指定一年的哪一个月,1 ~ 12
DD 指定一年的哪一个天,1 ~ 31
hh 指定一天中的哪一小时,0 ~ 23
mm 指定一小时中的哪一分钟,0 ~ 59
SS 指定一分钟中的哪一秒钟,0 ~ 59
06. 附录
概述
本文为OpenHarmony开发者提供一些组织编译形式比较常见(CMakeLists、Makefile)的三方库的移植指南,该指南当前仅适用于Hi3516DV300和Hi3518EV300两个平台,文中着重介绍各编译组织方式下工具链的设置方法以及如何将该库的编译添加到OpenHarmony整个工程的构建中。
CMake方式组织编译的库移植
源码获取
从仓库 获取double-conversion源码 ,其目录结构如下表:
表1 源码目录结构
class="table-box">名称 | 描述 |
---|---|
double-conversion/cmake/ | CMake组织编译使用到的模板 |
double-conversion/double-conversion/ | 源文件目录 |
double-conversion/msvc/ | - |
double-conversion/test/ | 测试用例源文件 |
double-conversion/.gitignore | - |
double-conversion/AUTHORS | - |
double-conversion/BUILD | - |
double-conversion/CMakeLists.txt | CMake方式顶层编译组织文件 |
double-conversion/COPYING | - |
double-conversion/Changelog | - |
double-conversion/LICENSE | - |
double-conversion/Makefile | - |
double-conversion/README.md | - |
double-conversion/SConstruct | - |
double-conversion/WORKSPACE | - |
评论记录:
回复评论: