我使用过的Linux命令之touch - 创建文件或修改文件时间
本文链接:http://codingstandards.iteye.com/blog/781916
(转载请注明出处)
用途说明
touch命令经常用来创建空文件或者更新文件时间。创建空文件的目的通常是作为程序运行的标志,当程序执行结束前又将该文件删除。而更新文件时间通常是为了让某些软件能够正常执行。
常用参数
-t <time> 用于指定时间。格式可以是MMDDhhmm或者yyyyMMDDhhmm。
-r <file> 设置与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
#!/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 ~]# 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宝库 Linux指令篇:档案目录管理--touch
【2】Computer Hope Linux / Unix settime and touch
返回 我使用过的Linux命令系列总目录
分享到:
相关推荐
`touch`命令主要用于创建新文件或更新已存在文件的时间戳,包括访问时间和修改时间。 ### touch命令的作用 `touch`命令主要有两个核心功能: 1. 创建新文件:如果指定的文件不存在,`touch`会创建一个新文件。 2. ...
命令:touch 将每个文件的访问和修改时间更新为当前时间;文件不存在则创建 用法: touch [OPTION]… FILE… touch 选项 文件 命令选项 [root@fp-21 ~]# touch --help -a # 只更改访问时间( atime ) -c, --no-...
- `chmod`:更改文件或目录的权限设置。 - `chown` 和 `chgrp`:改变文件或目录的所有者和组。 8. **脚本编程**: - `bash`:默认的Linux shell,支持编写shell脚本。 - `if`, `for`, `while`:shell脚本中的...
2. **更新文件时间戳**:当你不希望创建新文件,而是想更新现有文件的访问和修改时间时,也可以使用`touch`命令。这对于跟踪文件的最新活动非常有用。 3. **批量处理文件**:`touch`命令可以同时处理多个文件,例如...
在Linux操作系统中,掌握基础命令是使用和管理系统的必备技能。Linux命令行提供了一种高效且灵活的方式来执行各种任务,从文件操作到系统管理,无一不在其涵盖范围之内。以下是一些常见的Linux基础命令及其详细解释...
- `chmod`: 更改文件或目录的权限,如`chmod 755 file.txt`设置为可执行权限。 - `chown`: 改变文件或目录的所有者,如`chown user:group file.txt`。 - `chgrp`: 改变文件或目录的组所有权。 4. **进程和系统...
12. **chmod**:更改文件或目录权限,`chmod 755 file`给予文件所有者可读写执行权限,其他用户可读执行权限。 13. **chown**/`chgrp`:改变文件或目录的所有者和组。 14. **sudo**:以超级用户权限执行命令,通常...
- `touch -m file_name`:仅更改文件的修改时间。 - `touch -t time_stamp file_name`:设置文件的时间戳为指定的时间。 - **cp**:复制文件或目录。 - `cp source_file target_file`:复制source_file到target_...
- **touch**:创建新文件或更新现有文件的时间戳。 - **cp**:复制文件或目录,使用`-r`选项复制整个目录。 - **rm**:删除文件或目录,使用`-r`选项递归删除目录。 - **mv**:移动文件或重命名文件。 - **cat**:...
如果该文件已存在,`touch`命令将更新其时间属性,例如最近访问和修改时间。在实验的示例中,执行`touch yunchuang.txt`两次,可以看到文件的时间戳被更新了,表明文件的修改时间发生了变化。 接下来是`cat`命令。`...
`chgrp`命令用于更改文件或目录的所属组。例如,`chgrp -v bin log2012.log`将文件`log2012.log`的所属组更改为`bin`。可以使用`-R`选项递归改变目录下的所有文件和子目录。 除了上述命令,还有其他常用的文件管理...
- 调用命令:在脚本中可以直接调用Linux命令,如`ls`, `grep`等。 通过学习和熟练掌握上述内容,用户将能够更加高效地在Linux环境中工作,不论是日常的文件管理还是编写自动化脚本,都能得心应手。嵌入式系统课程...
- **touch**:更新文件的时间戳或创建新文件。 - `touch <file>`:创建一个名为`<file>`的新文件,如果文件已存在,则更新其时间戳。 ##### 2. **文件搜索** - **find**:在文件系统中查找文件。 - `find ...
### 学习Linux---不得不知的Linux命令 在Linux操作系统中,掌握一系列基本且重要的命令是每个用户必备的技能之一。这些命令可以帮助我们更高效地管理服务器、进行日常操作及故障排查等工作。以下是对给定内容中列出...
* touch 命令创建新文件 查看和编辑文件 * cat 命令显示文件的内容 * more 命令显示文件的内容 * less 命令显示文件的内容 * vi 命令编辑文件 查找文件 * find 命令查找文件 * locate 命令查找文件 * which 命令...
- `-a` 或 `--time=atime` 或 `--time=access` 或 `--time=use`:只更改文件的访问时间,而不改变其内容或修改时间。 - `-c` 或 `--no-create`:不创建任何新文件,即使文件不存在也不报错。 - `-d`:使用指定的日期...
- `chgrp [options] newgroup files/directorys`:更改文件或目录的所属组。 - `chgrp -R groupname directory`:递归地更改目录及其内容的所属组。 - **改变文件所有者**: - `chown [options] newowner files/...
在Linux操作系统中,`touch`命令是一个非常实用的工具,用于管理和更新文件或目录的访问时间(atime)和修改时间(mtime)。这个命令可以用来创建新的文件,或者更改现有文件的时间戳,以便于文件管理。以下是关于`...
Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的基本工具。这个“Linux命令集合-手册”包含了一份详尽的Linux命令大全,是开发者和学习者的宝贵资源。以下是手册中可能涵盖的一些重要知识点: 1. **...
另一方面,Linux和macOS系统中,可以使用`touch`命令来修改时间戳: ```bash touch -m -t <timestamp> /path/to/example.txt # 修改修改时间 touch -a -t <timestamp> /path/to/example.txt # 修改访问时间 touch -...