Linux 文件与目录管理
Linux 文件与目录管理是 Linux 操作系统中非常重要的一部分。它涉及到文件和目录的创建、删除、重命名、复制和移动等操作。我们知道 Linux 的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
绝对路径:路径的写法,由根目录 / 写起,例如: /usr/bin 这个目录。
相对路径:路径的写法,不是由 / 写起,例如:由 /usr/bin 要到 /usr/sbin 底下时,可以写成: cd ../sbin 这就是相对路径的写法。
Linux 采用“指令”调用程序
指令的基本格式:
指令 [-选项] [参数1 参数2] …
- 每个成分用空格或
tab 分隔,一条指令用回车结束
指令示例:
ls -a # 其中ls为指令,-a为选项,无参数cd /home/user # 其中cd为指令,/home/user为参数,这条指令只有一个参数mv file1 file2 # 其中mv为指令,file1为参数1,file2为参数2,mv命令需要两个参数,无选项
使用 man [命令] 来查看各个命令的使用文档
例如:man ls:
user@beta ~ $ man lsLS(1) User Commands LS(1)NAME ls - list directory contentsSYNOPSIS ls [OPTION]... [FILE]...DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐ fied.......
处理目录的常用命令
cd(英文全拼:change directory):切换目录
cd [相对路径或绝对路径]
示例:
user@beta ~ $ pwd/home/useruser@beta ~ $ cd .user@beta ~ $ pwd/home/useruser@beta ~ $ cd ..user@beta /home $ pwd/homeuser@beta /home $ cd ~user@beta ~ $ pwd/home/useruser@beta ~ $ cd -/home
pwd(英文全拼:print work directory):显示目前的目录
pwd [-P]
选项:
- -P:显示出确实的路径,而非使用链接(
link)路径;
mkdir(英文全拼:make directory):创建一个新的目录
mkdir [-mp] 目录名称
选项:
- -p:直接将所需要的目录(包含上一级目录)递归创建起来;
rmdir(英文全拼:remove empty directories):删除一个空的目录
rmdir [-p] 目录名称
选项:
cp(英文全拼:copy files and directories): 复制文件或目录
cp [-adfilprsu] source-destination
选项:
- -a:相当于
-pdr 的意思,至于 pdr 请参考下列说明;(常用) - -d:若来源档为链接档的属性(
link file),则复制链接档属性而非文件本身; - -f:为强制(
force)的意思,若目标文件已经存在且无法开启,则移除该文件; - -i:若目标档(
destination)已经存在时,在覆盖时会先询问动作的进行(常用); - -l:进行硬式链接(
hard link)的链接档创建,而非复制文件本身; - -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
ls(英文全拼:list files): 列出目录及文件名
ls [-alrR] [目录名称]
选项:
- -a:全部的文件,连同隐藏文件(开头为
. 的文件)一起列出来(常用); - -l:长数据串列出,包含文件的属性与权限等等数据(常用);
- -R:连同子目录的数据也一起列出(递归列出),等于该目录下的所有文件都会显示出来;
rm(英文全拼:remove): 删除文件或目录
rm [-fir] 文件或目录
选项:
- -f:就是
force 的意思,忽略不存在的文件,不会出现警告消息;慎用删除之后无法恢复;
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
mv [-fiu] source-destination
选项:
- -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -u:若目标文件已经存在,且
source 比较新,才会更新(update); - -i:若目标文件(
destination)已经存在时,就会询问是否覆盖!
find(英文全拼:search for files in a directory hierarchy): 在特定目录下搜索查找文件
find [搜索目录] [选项]
选项:
- -name filename:搜寻文件名为
filename 的文件; - -type TYPE:搜寻文件类型为
TYPE 的文件; - -perm mode:搜寻权限为
mode 的文件; - -user name:搜寻文件所有者为
name 的文件; - -group name:搜寻文件所属群组为
name 的文件; - -mtime [-|+]n:搜寻在
n 天前(-n)或之后(+n)被更改过内容的文件;
处理文件的常用命令
touch(英文全拼:change file timestamps): 修改文件的时间戳
touch [-acm] 文件
选项:
- -c:仅修改文件的时间,若该文件不存在则不创建新文件;
cat (英文全拼:concatenate files and print on the standard output): 由第一行开始显示文件内容
cat [-AbEnTv] 文件
选项:
- -A:相当于
-vET 的整合选项,可列出一些特殊字符而不是空白而已; - -b:列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -n:列出行号,连同空白行也会有行号,与
-b 的选项不同;
nl (英文全拼:number lines of files): 显示行号
nl [-bnw] 文件
选项:
- -b a :表示不论是否为空行,也同样列出行号(类似
cat -n ); - -b t :如果有空行,空的那一行不要列出行号(默认值);
- -n rn :行号在自己栏位的最右方显示,且不加
0 ; - -n rz :行号在自己栏位的最右方显示,且加
0 ;
more (英文全拼:file perusal filter for crt viewing): 阅读文件内容
more 文件
操作:
/字符串:代表在这个显示的内容当中,向下搜寻[字符串]这个关键字;q :代表立刻离开 more ,不再显示该文件内容。
less (英文全拼:opposite of more): 阅读文件内容,less 与 more 类似,但是比 more 更好的是,它可以往前翻页
less 文件
操作:
ln (英文全拼:make links between files): 建立链接
ln [-sf] 来源文件 目标文件
选项:
- -s:就是
symbolic link 的意思,生成软链接;否则,生成的是硬连接 - -f:如果目标文件存在时,先删除目标文件,再建立链接文件;
grep (英文全拼:print lines that match patterns): 匹配式搜索
grep [-acinv] [--color=auto] '搜寻字符串' 文件名
选项:
- -a :将
binary 文件以 text 文件的方式搜寻数据; - -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
- --color=auto :可以将找到的关键字部分加上颜色的显示
head (英文全拼:output the first part of files): 只看头部几行
head [-n number] 文件
选项:
tail (英文全拼:output the last part of files): 只看尾部几行
tail [-n number] 文件
选项: