Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300785
  • 博文数量: 273
  • 博客积分: 5865
  • 博客等级: 准将
  • 技术积分: 3280
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-11 10:01
文章分类

全部博文(273)

文章存档

2015年(33)

2014年(11)

2013年(11)

2012年(136)

2011年(32)

2010年(50)

分类: LINUX

2012-08-03 09:22:26

 

本文链接:blog/781916    (转载请注明出处)

用途说明

touch命令经常用来创建空文件或者更新文件时间。创建空文件的目的通常是作为程序运行的标志,当程序执行结束前又将该文件删除。而更新文件时间通常是为了让某些软件能够正常执行。

常用参数

-t

-r 设置与file相同的时间。

使用示例 示例一 创建新文件

[root@jfht ~]# ls -l new.txt
ls: new.txt: 没有那个文件或目录
[root@jfht ~]# touch new.txt
[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 10-11 22:40 new.txt
[root@jfht ~]#

示例二 更改文件时间为当前时间

[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 10-11 22:40 new.txt

[root@jfht ~]# touch new.txt
[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 10-11 22:41 new.txt

示例三 更改文件时间为指定时间

[root@jfht ~]# date
2010年 10月 11日 星期一 22:42:54 CST
[root@jfht ~]# touch -t 10112200 new.txt <=== 格式 MMDDhhmm
[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 10-11 22:00 new.txt
[root@jfht ~]# touch -t 200910112200 new.txt  <=== 格式 yyyyMMDDhhmm
[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 2009-10-11 new.txt
[root@jfht ~]#

实例四 将文件时间改成与别的文件相同

[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 2009-10-11 new.txt
[root@jfht ~]#
[root@jfht ~]#
[root@jfht ~]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1606 07-05 15:46 /etc/passwd
[root@jfht ~]# touch -r /etc/passwd new.txt
[root@jfht ~]# ls -l new.txt
-rw-r--r-- 1 root root 0 07-05 15:46 new.txt
[root@jfht ~]#

[root@jfht ~]# stat new.txt
  File: “new.txt”
  Size: 0               Blocks: 8          IO Block: 4096   一般空文件
Device: fd00h/64768d    Inode: 194805821   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-10-11 22:49:17.000000000 +0800
Modify: 2010-07-05 15:46:46.000000000 +0800
Change: 2010-10-11 22:49:44.000000000 +0800

[root@jfht ~]# stat /etc/passwd
  File: “/etc/passwd”
  Size: 1606            Blocks: 16         IO Block: 4096   一般文件
Device: fd00h/64768d    Inode: 238127091   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-10-11 22:53:01.000000000 +0800
Modify: 2010-07-05 15:46:46.000000000 +0800
Change: 2010-07-05 15:46:46.000000000 +0800

从上面看出,touch设置的时间是Modify time。

示例五 在脚本中用作运行标志

文件 touch_5.sh

Bash代码 收藏代码

  1. #!/bin/sh 
  2. F=touch_5.run 
  3. if [ -e $F ]; then 
  4.     echo "$0 is running..."
  5.     exit 1
  6. fi 
  7. touch $F 
  8. echo "I'm doing..."
  9. sleep 30
  10. rm -f $F 

[root@jfht ~]# cat touch_5.sh
#!/bin/sh
F=touch_5.run
if [ -e $F ]; then
    echo "$0 is running..."
    exit 1
fi
touch $F
echo "I'm doing..."
sleep 30
rm -f $F
[root@jfht ~]# chmod +x touch_5.sh
[root@jfht ~]# ./touch_5.sh
I'm doing...

在这个程序还没有结束的时候,在另外一个终端执行

Last login: Mon Oct 11 22:30:38 2010 from 222.70.144.138
[root@jfht ~]# ./touch_5.sh
./touch_5.sh is running...
[root@jfht ~]#

问题思考

1. 文件有哪几种时间?

2. 如果文件不存在,touch时不创建,用什么参数?

3. 如示例五中所示,用文件作为运行标志,可能会存在什么问题?

相关资料

【1】Linux宝库

【2】Computer Hope

返回 我使用过的Linux命令系列总目录

阅读(605) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~