Skip to content

文件管理

本节介绍对文件进行简单管理的命令。

ls 命令

ls 命令可以查看一个文件夹下的所有文件,或查找一个或单个文件,支持使用正则表达式。

用法:

txt
ls [option] <路径>

常见选项如下:

  • -a:同时列出隐藏文件

  • -l:显示详细信息

  • -h:改用 MB 或 GB 的文件大小计数方式,配合 -l 参数使用

查看 /etc 目录下的文件:

bash
ls /etc

查看当前目录下的所有文件,含隐藏文件:

bash
ls -a

查看上级目录下文件的详细信息,并以 MB 或 GB 的文件大小计数方式列出所有文件,含隐藏:

bash
ls -alh ../

mkdir 命令

mkdir 命令用于创建目录,用法如下:

txt
mkdir [option] <路径>

常用选项:

  • -p:递归创建

例如创建 video 目录:

bash
mkdir video

递归创建一系列文件夹:

bash
mkdir one/two/three

cp 命令

cp 命令可以复制一份文件或目录到指定的路径。语法如下:

txt
cp [option] <文件路径> <目标路径>

选项说明:

  • -r:递归复制目录及其内容(用于复制目录)。

  • -i:交互模式,覆盖前提示用户确认。

  • -f:强制复制,覆盖目标文件而不提示。

  • -v:显示详细的复制过程(verbose)。

  • -p:保留文件的原始属性(如权限、时间戳等)。

  • -a:归档模式,等同于 -dpr,保留所有文件属性和递归复制目录。

  • -u:仅当源文件比目标文件新时才复制(更新模式)。

  • -l:创建硬链接而不是复制文件。

  • -s:创建符号链接(软链接)而不是复制文件。

例如将 /home/fovlin/file 文件复制一份到到 /home/fovlin/directory 目录下:

bash
cp /home/fovlin/file /root

复制当前工作目录下的 directory 目录到 /home/fovlin/Documents 目录下:

bash
cp -r ./directory /home/fovlin/Documents

rm 命令

rm 命令可以删除一个或多个文件或目录。

用法:

txt
rm [option] <路径>

常见选项如下:

  • -r:递归删除,删除目录时必需

  • -f:强制删除,忽略不存在的文件且不提示

  • -i:交互式删除,删除前逐一询问确认

删除单个文件:

bash
rm file.txt

递归删除目录及其内容:

bash
rm -rf dir/

交互式删除文件:

bash
rm -i file.txt

touch 命令

touch 命令用于创建空文件,或更新已有文件的时间戳。

用法:

txt
touch [option] <路径>

常见选项如下:

  • -c:不创建文件,仅更新时间戳

  • -t:使用指定时间而非当前时间

创建一个空文件:

bash
touch newfile.txt

同时创建多个文件:

bash
touch file1.txt file2.txt file3.txt

仅更新文件时间戳,不创建:

bash
touch -c existing.txt

chmod 命令

使用 ls -l 命令时,会输出文件的基本信息,其中包含文件的权限信息:

log
drwxr-xr-x  2 fovlin fovlin 4096  4月17日 00:37 docs

从左到右依次为:


文件权限 我也不知道是啥 所有者 所有组 文件大小(不会显示目录大小) 最后访问日期 最后访问时间 文件名称


更改文件权限

文件权限 drwxr-xr-x 前一个字符表示文件类型,常见字符对应的文件类型如下:

  • -: 普通文件

  • d: 目录

  • l: 链接

  • c: 字符设备文件

  • b: 块设备文件

  • s: 套接字文件

  • p: 管道文件

文件权限 drwxr-xr-x 第 2-4 、 5-7 、 8-10 个字符分别表示所有者权限、所有组权限、其他用户权限,三个字符分别代表:

  • r: 读权限

  • w: 写权限

  • x: 执行权限

使用 chmod 可以改变文件权限,用法如下:

txt
chmod [选项] <权限信息> <文件名>

当权限不足时可以使用超级管理员进行操作。

一般常用数字模式来表示权限:

  • x: 1

  • w: 2

  • r: 4

将需要的权限对应的数字加和即可表示单个权限。

一个文件的权限信息由三位数字,也就是三个权限组成,分别表示所有者权限、所有组权限、其他用户权限。

例如将文件 script.sh 改为所有者可读可执行可写,同用户组可读可执行,其他用户仅执行,执行以下命令:

bash
chmod 751 script.sh

将整个目录 docs 递归改为所有者可读可执行可写,同用户组可读可执行,其他用户仅执行,执行以下命令:

bash
chmod -R 751 docs

可执行在目录中表示能否进入目录。

chown 命令

chown 命令用于更改目文件的所有者,格式如下:

txt
chown [option] <所有者|所有者:所属组> <文件路径>
  • -R:--recursive,递归更改目录及其子目录中所有文件的所有者

  • -v:--verbose,显示详细操作信息

  • -c:--changes,只显示实际发生更改的文件

  • -f:--silent, --quiet,抑制错误信息

  • --reference=文件:使用参考文件的所有者和组设置

  • -h:--no-dereference,影响符号链接本身,而不是链接指向的文件

  • --from=当前所有者:只有当前所有者匹配时才更改

使用 ls -l 命令时,会输出文件的基本信息,其中包含文件的权限信息:

log
drwxr-xr-x  2 root root 4096  4月17日 00:37 docs

root root 表示文件的所有者为 root,所属组为 root,更改此处的信息需要用到 chown 命令。

更改不属于自己的文件的操作需要管理员权限,例如更改当前目录下 root 用户的 docs 目录的所有者,以及所属组为 fovlin:

bash
sudo chown -R fovlin:fovlin docs

nano 命令

nano 是编辑含文本文件内容的一个工具,直接使用 nano <文件路径> 即可开始编辑文件。

开始编辑后,会进入交互式命令行模式,常用快捷键如下:

  • Ctrl + G:帮助

  • Ctrl + O:写入文件

  • Ctrl + F:搜索字符串

  • Ctrl + K:剪切

  • Ctrl + T:执行命令

  • Ctrl + X:离开

  • Ctrl + R:读档

  • Ctrl + \:替换

  • Ctrl + U:粘贴

  • Ctrl + J:对齐

编辑操作不是实时的,在退出前需要先 Ctrl + O 写入文件,再退出,才能够完成对文件的编辑。

诸如此类的工具还有 vim neovim 等。