文件管理
本节介绍对文件进行简单管理的命令。
ls 命令:列出文件
mkdir 命令:创建目录
cp 命令:复制文件
rm 命令:删除文件
touch 命令:创建空文件
chmod 命令:改变文件权限
chown 命令:改变文件所有者
nano 命令:编辑文本类文件
ls 命令
ls 命令可以查看一个文件夹下的所有文件,或查找一个或单个文件,支持使用正则表达式。
用法:
ls [option] <路径>常见选项如下:
-a:同时列出隐藏文件
-l:显示详细信息
-h:改用 MB 或 GB 的文件大小计数方式,配合
-l参数使用
查看 /etc 目录下的文件:
ls /etc查看当前目录下的所有文件,含隐藏文件:
ls -a查看上级目录下文件的详细信息,并以 MB 或 GB 的文件大小计数方式列出所有文件,含隐藏:
ls -alh ../mkdir 命令
mkdir 命令用于创建目录,用法如下:
mkdir [option] <路径>常用选项:
- -p:递归创建
例如创建 video 目录:
mkdir video递归创建一系列文件夹:
mkdir one/two/threecp 命令
cp 命令可以复制一份文件或目录到指定的路径。语法如下:
cp [option] <文件路径> <目标路径>选项说明:
-r:递归复制目录及其内容(用于复制目录)。-i:交互模式,覆盖前提示用户确认。-f:强制复制,覆盖目标文件而不提示。-v:显示详细的复制过程(verbose)。-p:保留文件的原始属性(如权限、时间戳等)。-a:归档模式,等同于-dpr,保留所有文件属性和递归复制目录。-u:仅当源文件比目标文件新时才复制(更新模式)。-l:创建硬链接而不是复制文件。-s:创建符号链接(软链接)而不是复制文件。
例如将 /home/fovlin/file 文件复制一份到到 /home/fovlin/directory 目录下:
cp /home/fovlin/file /root复制当前工作目录下的 directory 目录到 /home/fovlin/Documents 目录下:
cp -r ./directory /home/fovlin/Documentsrm 命令
rm 命令可以删除一个或多个文件或目录。
用法:
rm [option] <路径>常见选项如下:
-r:递归删除,删除目录时必需
-f:强制删除,忽略不存在的文件且不提示
-i:交互式删除,删除前逐一询问确认
删除单个文件:
rm file.txt递归删除目录及其内容:
rm -rf dir/交互式删除文件:
rm -i file.txttouch 命令
touch 命令用于创建空文件,或更新已有文件的时间戳。
用法:
touch [option] <路径>常见选项如下:
-c:不创建文件,仅更新时间戳
-t:使用指定时间而非当前时间
创建一个空文件:
touch newfile.txt同时创建多个文件:
touch file1.txt file2.txt file3.txt仅更新文件时间戳,不创建:
touch -c existing.txtchmod 命令
使用 ls -l 命令时,会输出文件的基本信息,其中包含文件的权限信息:
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 可以改变文件权限,用法如下:
chmod [选项] <权限信息> <文件名>当权限不足时可以使用超级管理员进行操作。
一般常用数字模式来表示权限:
x: 1w: 2r: 4
将需要的权限对应的数字加和即可表示单个权限。
一个文件的权限信息由三位数字,也就是三个权限组成,分别表示所有者权限、所有组权限、其他用户权限。
例如将文件 script.sh 改为所有者可读可执行可写,同用户组可读可执行,其他用户仅执行,执行以下命令:
chmod 751 script.sh将整个目录 docs 递归改为所有者可读可执行可写,同用户组可读可执行,其他用户仅执行,执行以下命令:
chmod -R 751 docs可执行在目录中表示能否进入目录。
chown 命令
chown 命令用于更改目文件的所有者,格式如下:
chown [option] <所有者|所有者:所属组> <文件路径>-R:--recursive,递归更改目录及其子目录中所有文件的所有者-v:--verbose,显示详细操作信息-c:--changes,只显示实际发生更改的文件-f:--silent, --quiet,抑制错误信息--reference=文件:使用参考文件的所有者和组设置-h:--no-dereference,影响符号链接本身,而不是链接指向的文件--from=当前所有者:只有当前所有者匹配时才更改
使用 ls -l 命令时,会输出文件的基本信息,其中包含文件的权限信息:
drwxr-xr-x 2 root root 4096 4月17日 00:37 docsroot root 表示文件的所有者为 root,所属组为 root,更改此处的信息需要用到 chown 命令。
更改不属于自己的文件的操作需要管理员权限,例如更改当前目录下 root 用户的 docs 目录的所有者,以及所属组为 fovlin:
sudo chown -R fovlin:fovlin docsnano 命令
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 等。