无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第一篇,全面详细的展示了10个与文件管理相关的命令。
序号 | 命令 | 简述 | 分类 |
---|---|---|---|
1 | ls | 列出目录内容 | 文件管理 |
2 | cd | 切换目录 | 文件管理 |
3 | pwd | 显示当前工作目录的路径 | 文件管理 |
4 | mkdir | 创建新目录 | 文件管理 |
5 | cp | 复制文件或目录 | 文件管理 |
6 | mv | 移动或改名文件 | 文件管理 |
7 | touch | 创建空文件与修改时间戳 | 文件管理 |
8 | rm | 删除文件或目录 | 文件管理 |
9 | ln | 为文件创建快捷方式 | 文件管理 |
10 | cat | 显示文件内容 | 文件管理 |
ls命令是英文list的缩写,用于列出指定目录的内容,能够显示文件名、文件类型、文件大小、最后修改时间等信息
语法格式
ls [参数] [文件或目录名]
常用参数
ls -a 列出包括隐藏文件的所有文件
ls -A 列出除当前目录(.)和父目录(..)所有文件和目录
ls -d 当遇到目录时列出目录本身而非目录内的文件
ls -i 显示每个文件的索引编号(inode号)
ls -l 显示文件的属性信息,包括权限、所有者、大小、创建时间等
ls -R 递归列出目录中的所有文件和子目录
ls -S 依据内容大小将文件排序显示,最大的在最前
ls -t 按修改时间排序,最新的在最前
ls -X 依据文件扩展名排序
实例
(1)列出/bin目录下的文件
ls /bin
(2)按照修改时间列出所有文件的详细信息
ls -Alt
(3)结合通配符*使用,显示目录中以a开头的文件列表
ls a*
(4)查看当前目录中某一目录的权限
ls -ld dir2
注意
-a
和-A
参数,ls
命令是区分大小写的cd命令是英文change directory的缩写,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径
语法格式
cd 目录名
常用参数&实例
cd /root/dir1/directory 切换到绝对路径
cd dir1/directory 切换到相对路径
cd .. 切换到上级目录
cd ../.. 切换到上上级目录
cd ~ 或 cd 切换到用户主目录
cd - 切换到上次访问的目录
pwd命令是英文print working directory的缩写,用于显示当前工作目录的路径,一般不需要配合任何参数去使用
语法格式
pwd
实例
显示当前工作目录的路径
pwd
mkdir命令是英文make directories的缩写,用于创建目录文件
语法格式
mkdir [参数] 目录
常用参数
mkdir -m 创建目录的同时设置权限
mkdir -p 递归创建多级目录
mkdir -v 显示执行过程详细信息
实例
(1)建立一个目录文件
mkdir dir3
(2)创建一个新目录并赋予所有者完全权限(读、写、执行),组成员读权限和执行权限,其他用户只读权限
mkdir -m 754 dir4
(3)一次性创建多个有嵌套关系的目录文件
mkdir -p dir3/dir33/dir333
注意
-p
参数时,如果目录已经存在,命令不会报错,而是继续执行cp命令是英文copy的缩写,用于复制文件或目录,将一个或多个文件或目录复制到指定位置
语法格式
cp [参数] 源文件或目录 目标文件或目录
常用参数
cp -a 通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容,功能等同dbR参数
cp -d 复制链接文件时,将目标文件也创建为链接文件而非普通文件,这里链接类似Windows中的快捷方式
cp -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
cp -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
cp -l 用于创建硬链接,硬链接是一种指向同一文件的指针,使得多个文件名可以引用相同的数据块
cp -p 复制时保留源文件的权限、所有者和时间戳等属性信息
cp -r 复制目录时递归复制其所有子目录和文件
cp -s 用于创建符号链接(软连接),类似Windows快捷方式,是一个包含链接路径的特殊类型文件
cp -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
cp -v 显示执行过程详细信息
实例
(1)复制源文件到指定目录,并定义新文件的名称
cp file1 dir2/new_file
(2)复制指定的源目录,并定义新目录的名称,显示执行过程详细信息
cp -rv dir3 dir5
(3)复制指定文件时保留原始属性信息,并强制覆盖已有目录
cp -af article.md dir4
注意
可以将一个文件通过复制来覆盖一个已有文件或者复制添加到一个目录中,但无法将一个目录通过复制来覆盖一个已有目录,如果使用cp -r 目录 已有目录
命令,会把目录复制添加到已有目录中
mv命令是英文move的缩写,用于移动文件或目录,与cp复制命令不同,mv命令是剪切操作,只有文件位置发生了变化,而文件总个数并没有增加
语法格式
mv [参数] 源文件或目录 目标文件或目录
常用参数
mv -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
mv -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
mv -n 不覆盖已存在的目标文件
mv -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
mv -v 显示执行过程详细信息
实例
(1)移动源文件到指定目录,并定义新文件的名称
mv file2 dir1/new_file
(2)重命名当前目录下的文件或目录的名称
mv file2 file3
注意
mv
命令会覆盖文件,为避免误删文件,可以使用-i
参数touch命令用于创建文件与修改文件或目录的时间属性,若文件存在则修改文件的访问时间和修改时间为当前时间,若文件不存在则创建一个新的空文件
语法格式
touch [参数] 文件
常用参数
touch -a 只修改文件的访问时间
touch -m 只修改文件的修改时间
touch -c 如果文件不存在,不会创建新文件
touch -d 使用字符串(YYYY-MM-DD hh:mm:ss)设定时间与日期,而不是使用当前时间
touch -t 使用时间戳(YYYYMMDDhhmmss)设定时间与日期,而不是使用当前时间
实例
(1)创建出一个指定名称的空文件
touch file4
(2)修改指定文件的修改时间
touch -md "2024-03-04 05:06:07" file1
(3)使用通配符批量修改多个文件的访问时间,并确保不创建不存在的文件
touch -ad "2024-03-04 05:06:07" file*
注意
-d
或-t
参数时,确保提供的时间格式正确rm命令是英文remove的缩写,用于删除文件或目录,这是一个危险的命令,如rm -rf /*
会清空系统所有文件且无法恢复
语法格式
rm [参数] 文件或目录
常用参数
rm -d 仅删除无子文件的空目录
rm -f 强制删除文件,不会提示用户确认
rm -i 在删除每个文件之前都会询问用户是否确定
rm -r 递归删除目录及其全部子文件
rm -v 显示执行过程详细信息
实例
(1)强制删除指定目录及其内的全部子文件
rm -rf dir1
(2)删除当前目录下的所有文件及目录,并且每个文件删除前询问用户是否确认
rm -ri *
(3)删除系统的所有文件(不要尝试!!!)
rm -rf /*
注意
rm
命令,一般情况下删除的文件或目录无法恢复ln命令是英文link的缩写,用于为某个文件在另外一个位置建立同步的链接(硬链接)。Linux系统中的链接文件有硬链接和软链接(符号链接)两种形式,软链接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后软链接文件也将无法使用;硬链接则是将文件的inode属性块进行了复制,因此把原始文件移动或删除后硬链接文件依然可以使用
语法格式
ln [参数] 源文件或目录 目标文件或目录
常用参数
ln -d 允许超级用户尝试创建指向目录的硬链接
ln -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
ln -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
ln -r 根据相对位置创建软链接而非绝对路径
ln -s 创建软链接
ln -t 设置链接文件的存放目录
ln -v 显示执行过程详细信息
实例
(1)创建软链接
ln -s file1 file2
(2)创建硬链接,当目标文件存在时询问是否覆盖
ln -i file1 file2
注意
cat命令是英文concatenate的缩写,用于在终端设备上打印出文件内容,适合查看内容较少的纯文本文件,对于内容较多的文件查看后会在屏幕上快速滚屏看不清所显示的具体内容
语法格式
cat [参数] 文件
常用参数
cat -n 由1开始对所有输出的行数编号
cat -b 和-n相似,但对空白行不编号
cat -s 遇到有连续两行以上的空白行,就换为一行的空白行
实例
(1)查看指定文件的内容并显示行号
cat -n file1
(2)把文件A的非空白行内容加上行号,之后将其附加到文件B中
cat -b file2 >> file3
注意
cat
命令默认会一次显示整个文件,如果文件过大可能会导致终端卡顿cat
命令可以用来创建新的空文件,但不能编辑文件