欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 常用命令 文件目录管理之touch

程序员文章站 2022-07-14 10:17:42
...

常用命令:
文件目录管理


touch

1.命令
touch -- 创建文件,改变文件的访问时间和修改时间。

2.使用样例
touch test --创建文件,名为test;如果test文件存在,会将 test文件的上次访问和修改时间设置为当前日期和时间

[email protected]:~/lhc$ touch test
[email protected]:~/lhc$ ls
test

touch test1 test2 --同时创建多个文件,名为test1,test2;如果test1,test2文件存在,会将test1,test2文件的上次访问和修改时间设置为当前日期和时间

[email protected]:~/lhc$ touch test1 test2
[email protected]:~/lhc$ ls
00:01:20  10:10:20  linux  test1  test.sh
00:01:32  20:01:32  test   test2  Tmux

stat test --如何查看文件的访问时间,修改时间,例如查看文件test的状态

[email protected]:~/lhc$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 395355      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 10:10:37.227806791 +0800
Modify: 2016-11-19 10:10:37.227806791 +0800
Change: 2016-11-19 10:10:37.227806791 +0800
 Birth: -

touch -a test --改变test文件的访问时间为当前时间,Access时间由2016-11-19 10:10:37 切换到2016-11-19 10:19:46

[email protected]:~/lhc$ touch -a test
[email protected]:~/lhc$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 395355      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 10:19:46.302453173 +0800
Modify: 2016-11-19 10:10:37.227806791 +0800
Change: 2016-11-19 10:19:46.302453173 +0800
 Birth: -

touch -c test --如果test文件不存在,则不需要创建

[email protected]:~/lhc/linux$ ls
filedirectorymanagement
[email protected]:~/lhc/linux$ touch -c test
[email protected]:~/lhc/linux$ ls

touch -f test --强制改变test文件的访问时间和修改时间为当前时间

[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 395218      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 16:43:54.096672946 +0800
Modify: 2016-11-19 16:43:54.096672946 +0800
Change: 2016-11-19 16:43:54.096672946 +0800
 Birth: -
[email protected]:~/lhc/linux$ touch -f test
[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 395218      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 16:44:14.085710437 +0800
Modify: 2016-11-19 16:44:14.085710437 +0800
Change: 2016-11-19 16:44:14.085710437 +0800
 Birth: -

touch -m test --改变test文件的修改时间为当前时间

[email protected]:~/lhc$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 395355      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 10:19:46.302453173 +0800
Modify: 2016-11-19 10:10:37.227806791 +0800
Change: 2016-11-19 10:19:46.302453173 +0800
 Birth: -
[email protected]:~/lhc$ touch -m test
[email protected]:~/lhc$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 395355      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 10:19:46.302453173 +0800
Modify: 2016-11-19 10:23:02.914256419 +0800
Change: 2016-11-19 10:23:02.914256419 +0800
 Birth: -

touch -m -d “2016-09-30 00:01:20” test --改变test文件的修改时间为2016-09-30 00:01:20

[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 1998-03-03 03:03:55.000000000 +0800
Modify: 1998-03-03 03:03:55.000000000 +0800
Change: 2016-11-19 16:06:02.519291464 +0800
 Birth: -
[email protected]:~/lhc/linux$ touch -m -d "2016-09-30 00:10:20" test 
[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 1998-03-03 03:03:55.000000000 +0800
Modify: 2016-09-30 00:10:20.000000000 +0800
Change: 2016-11-19 16:15:00.407627037 +0800
 Birth: -

touch -r test5 test 将test文件访问和更改时间设置成与test5一样

[email protected]:~/lhc/linux$ stat test test5
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 15:44:36.807687722 +0800
Modify: 2016-11-19 15:44:36.807687722 +0800
Change: 2016-11-19 15:44:36.807687722 +0800
 Birth: -
  File: 'test5'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398800      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 15:45:35.964931366 +0800
Modify: 2016-11-19 15:45:35.964931366 +0800
Change: 2016-11-19 15:45:35.964931366 +0800
 Birth: -
[email protected]:~/lhc/linux$ touch -r test5 test
[email protected]:~/lhc/linux$ stat test test5
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 15:45:35.964931366 +0800
Modify: 2016-11-19 15:45:35.964931366 +0800
Change: 2016-11-19 15:46:07.655262054 +0800
 Birth: -
  File: 'test5'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398800      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 15:45:35.964931366 +0800
Modify: 2016-11-19 15:45:35.964931366 +0800
Change: 2016-11-19 15:45:35.964931366 +0800

touch -t 199803030303.33 test 将test文件时间戳(访问时间与修改时间)设在为1998年3月3日3:03:33

[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2016-11-19 15:45:35.964931366 +0800
Modify: 2016-11-19 15:45:35.964931366 +0800
Change: 2016-11-19 15:46:07.655262054 +0800
 Birth: -
[email protected]:~/lhc/linux$ touch -t 199803030303.55 test
[email protected]:~/lhc/linux$ stat test
  File: 'test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 398442      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 1998-03-03 03:03:55.000000000 +0800
Modify: 1998-03-03 03:03:55.000000000 +0800
Change: 2016-11-19 15:58:32.223721870 +0800
 Birth: -

3.语法
touch [ -a ] [ -c ] [ -m ] [ -f ] [ -r RefFile ] [ Time | -t Time ] { File ... | Directory ... }
4.参数说明
-a 修改文件的访问时间
-c 如果文件不存在,则不要进行创建
-m 修改文件的修改时间
-d 指定要修改成的时间
-f 强制将文件的上次访问和修改时间设置为当前日期和时间
-r RefFile 使用由 RefFile 变量指定的文件的相应时间,而不用当前时间。
Time 以 MMDDhhmm[YY] 的格式指定新时间戳记的日期和时间,其中:
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 59)。
YY
指定年份的后两位数字。如果 YY 变量没有被指定,缺省值为当前年份。
-t Time 使用指定时间而不是当前时间。Time 变量以十进制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中:
CC
指定年份的前两位数字。
YY
指定年份的后两位数字。
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 59)。
SS
指定一分钟的哪一秒(从 00 到 59)。