Linux touch/mkdir命令

更多资料下载、嵌入式视频教程,加群:398294860,视频教程:www.wanglitao.taobao.com

touch命令

Linux touch命令用来改变一个文件的时间戳,一般常用来新建一个空文件:

# touch hello.c

在Linux环境下,新建一个文本文件,还有多种方法,你可以使用vim或gedit直接创建,编辑好保存退出,即可:

# geit main.c
# vi hello.c

也可以使用重定向符号 > 直接创建一个空文件:

# echo "" > test.c

touch命令常用参数:

参数 参数说明
-a 改变文件的读取时间记录
-m 改变文件的修改时间记录
-r 使用参考档的时间记录,与 —file 的效果一样
-c 不创建新文件
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录,格式与 date 命令相同

使用示例:

改变一个文件的时间戳:

# ll hello.c 
-rw-r--r-- 1 root root 19 Feb 12 18:04 hello.c
# touch hello.c 
# ll hello.c 
-rw-r--r-- 1 root root 19 Feb 12 18:12 hello.c

修改文件的访问(access)时间

# stat hello.c 
  File: hello.c
  Size: 19            Blocks: 8          IO Block: 4096   regular file
Device: 805h/2053d    Inode: 1339391     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-12 18:12:36.277371071 -0800
Modify: 2021-02-12 18:12:36.277371071 -0800
Change: 2021-02-12 18:12:36.277371071 -0800
 Birth: -
# touch -a hello.c 
# stat hello.c 
  File: hello.c
  Size: 19            Blocks: 8          IO Block: 4096   regular file
Device: 805h/2053d    Inode: 1339391     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-12 18:16:47.706108545 -0800
Modify: 2021-02-12 18:12:36.277371071 -0800
Change: 2021-02-12 18:16:47.706108545 -0800
 Birth: -

使用touch -a修改文件的访问时间后,你会看到打印信息中的Access和Change栏都发生了变化,但Modify栏没有变化,说明这个文件只是访问,并没有修改。如果继续修改文件的Modify栏:

# stat hello.c 
  File: hello.c
  Size: 19            Blocks: 8          IO Block: 4096   regular file
Device: 805h/2053d    Inode: 1339391     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-12 18:16:47.706108545 -0800
Modify: 2021-02-12 18:12:36.277371071 -0800
Change: 2021-02-12 18:16:47.706108545 -0800
 Birth: -
# touch -m hello.c 
# stat
stat: missing operand
Try 'stat --help' for more information.
root@ubuntu:/home/cmd# stat hello.c 
  File: hello.c
  Size: 19            Blocks: 8          IO Block: 4096   regular file
Device: 805h/2053d    Inode: 1339391     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-02-12 18:16:47.706108545 -0800
Modify: 2021-02-12 18:20:03.923471934 -0800
Change: 2021-02-12 18:20:03.923471934 -0800
 Birth: -

文件修改时间更新后,你会看到Access栏保持不变,Modify和Change栏都发生了变化。

mkdir命令

mkdir命令用来创建一个目录

# mkdir [-p] dirname

如果dirname是一个目录名称,mkdir就会在当前目录下新建一个子目录:dirname。如果dirname是一个绝对路径,例如/home/wit/test,mkdir就会在/home/wit目录下创建一个子目录:test

如果dirname在当前目录下已经存在,此时你再去创建 ,就会遇到下面的报错信息:

# mkdir test
# mkdir test
mkdir: cannot create directory ‘test’: File exists

此时,加个 -p 参数,指示mkdir,当要创建的目录已经存在时,不再报错:

# mkdir test
mkdir: cannot create directory ‘test’: File exists
# mkdir -p test

mkdir命令常用参数:

参数 参数说明
-p 新建一个存在的目录时,不报错误信息
-m 新建目录时设置目录的读写权限
-z 设置安全上下文
-v 打印每一个目录的创建过程

新建一个具有读写、执行权限的目录:scripts

# mkdir -m 777 scripts
# ll
-rw-r--r--  1 root root   19 Feb 12 18:20 hello.c
drwxrwxrwx  2 root root 4096 Feb 12 18:36 scripts/

《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客