
touch命令的核心功能是“修改文件的时间戳”,但在实际使用中,它最常用的场景是创建空文件——当目标文件不存在时,touch会自动生成一个空文件;若文件已存在,则仅更新其访问时间(atime)、修改时间(mtime)和状态改变时间(ctime),而不改变文件内容。
touch命令的基本格式为:
touch [选项] 文件名/路径其中,“文件名/路径”既可以是当前目录下的文件名(如file.txt),也可以是包含路径的完整名称(如/tmp/logs/2024.txt)。若路径中包含不存在的目录,touch会报错(需先通过mkdir创建目录)。
touch命令的选项不多,但每个选项都有明确的实用场景。
(1)创建单个空文件(无选项)这是touch最基础的用法,直接指定文件名即可创建空文件。例如,在当前目录创建note.txt:
touch note.txt
执行后,可通过ls -l note.txt查看文件信息,会发现文件大小为0(空文件),且时间戳为当前系统时间。
(2)批量创建多个空文件若需一次性创建多个文件,无需重复执行touch,只需在命令后依次列出文件名(用空格分隔)。例如,创建3个不同格式的文件:
touch report.pdf data.csv image.png
该操作会在当前目录同时生成report.pdf、data.csv和image.png三个空文件,大幅提升操作效率。
(3)更新文件时间戳(-a/-m选项)当文件已存在时,touch默认更新所有时间戳(atime、mtime、ctime)。若需仅更新部分时间戳,可使用以下选项:
-a:仅更新文件的访问时间(atime,即文件最后被读取的时间);-m:仅更新文件的修改时间(mtime,即文件内容最后被修改的时间)。例如,仅更新note.txt的访问时间:
touch -a note.txt
执行后用ls -lu note.txt(-u选项显示atime)查看,会发现访问时间已更新为当前时间,而修改时间保持不变。
(4)自定义文件时间戳(-d选项)默认情况下,touch使用当前系统时间作为时间戳,但通过-d选项可自定义任意时间(需符合Linux时间格式,如YYYY-MM-DD、HH:MM:SS)。例如,创建一个时间戳为“2024年5月20日14:30”的文件schedule.txt:
touch -d "2024-05-20 14:30" schedule.txt该功能在模拟历史文件、测试时间相关脚本时非常实用。若文件已存在,此命令会将其时间戳修改为指定时间。
(5)避免创建新文件(-c选项)默认情况下,若指定的文件不存在,touch会自动创建空文件。若需“仅更新已有文件的时间戳,不创建新文件”,可使用-c选项(c即“create”的否定)。例如:
touch -c non_exist.txt
执行后,由于non_exist.txt不存在,touch不会创建该文件,也不会报错(若不加-c则会创建空文件)。
mkdir命令mkdir(即“make directory”)是Linux中专门用于创建目录的命令。与touch不同,mkdir仅针对目录操作,无法创建文件;同时,它支持一次性创建多级目录,这是其最核心的实用功能。
mkdir命令的基本格式为:
mkdir [选项] 目录名/路径若仅指定目录名(如docs),则在当前目录创建该目录;若指定完整路径(如/home/user/docs),则在对应路径下创建目录(需确保父目录存在,或使用-p选项)。
mkdir的选项虽少,但-p和-m是提升操作效率的关键。
(1)创建单个目录(无选项)这是mkdir的基础用法,直接指定目录名即可。例如,在当前目录创建photos目录:
mkdir photos执行后,通过ls -d photos可查看目录是否创建成功(-d选项仅显示目录,不展开内容)。

若需创建“父目录不存在”的目录结构(如/a/b/c,且/a和/a/b均不存在),直接执行mkdir /a/b/c会报错。此时需使用-p选项(p即“parent”,表示创建父目录):
mkdir -p /a/b/c-p选项会自动检测并创建所有不存在的父目录,无需手动逐级创建。例如,在当前目录创建project/src/main/java结构:
mkdir -p project/src/main/java
该命令会一次性创建project、project/src、project/src/main和project/src/main/java四级目录,是项目初始化的常用操作。
(3)自定义目录权限(-m选项)Linux中,目录和文件的默认权限由umask值决定(通常为022,即目录默认权限755,文件默认权限644)。若需创建目录时直接指定权限(无需后续通过chmod修改),可使用-m选项(m即“mode”,表示权限模式)。
例如,创建权限为“rwxr-x---”(数字表示为750)的private目录:
mkdir -m 750 private执行后用ls -l查看,会发现private的权限为drwxr-x---,而非默认的755。该功能在创建需要限制访问的目录(如个人隐私文件目录)时非常实用。
(4)创建多个同级目录与touch类似,mkdir也支持一次性创建多个同级目录,只需在命令后依次列出目录名(用空格分隔)。例如,在当前目录创建docs、tests、examples三个目录:
mkdir docs tests examples若需同时创建多个多级目录,可结合-p选项。例如:
mkdir -p project/{src,docs,tests}该命令会创建project/src、project/docs、project/tests三个目录({}为Shell通配符,表示枚举内容),进一步提升批量操作效率。