这篇文章主要介绍 Linux 系统中一些常用的文件管理命令,列举如下:
pwd
、ls
、cd
、cp
、mv
、rm
、ln
、mkdir
、cat
、more
、less
、head
、tail
pwd
命令,全称是 print working directory,用于显示当前工作目录的路径
> pwd # /home/user
ls
命令,全称是 list,用于列出当前工作目录的内容,常用的参数如下:
-a
:显示所有文件,包括隐藏的文件和目录-l
:显示详细信息,如果没有此参数,则只会显示名称-t
:显示的内容按修改时间排序-s
:显示的内容按文件大小排序
> ls -l # drwxrwxr-x 2 user user 4096 Sep 12 16:05 folder # -rw-rw-r-- 1 user user 12 Sep 12 16:00 file
加上 -l
参数后,每个文件或目录显示的内容包含七个字段,各个字段的具体含义如下:
- 文件描述:这个在下一篇文章中会有详细的介绍,感兴趣的朋友不妨先睹为快
- 子项数目:若是文件,则值为 1;若是目录,则为该目录中包含的子目录和文件的总数目
- 文件所有者
- 文件所属组
- 文件大小,以 Byte 为单位,目录多以 4096 表示
- 修改时间,格式为
Month Day Hour:Minute
- 文件名称
cd
命令,全称是 change directory,用于切换工作目录,几个常用目录的切换命令如下:
cd ~
:切换到主目录,该命令可简写为cd
cd /
:切换到根目录cd -
:切换到前一个目录cd ..
:切换到上一级目录
> cd
cp
命令,全称是 copy,用于复制文件与目录,常用的参数如下:
-r
:将子目录和文件一同复制,在复制目录时使用-p
:除了复制内容,还把修改时间和访问权限一同复制-d
:复制时保留链接-f
:若 destination 中存在同名文件,直接覆盖-i
:若 destination 中存在同名文件,要求用户确认是否覆盖-a
:常用于复制目录,相当于-dpr
的组合
> cp [option] source0 [,source1 [,source2 [,...]]] destination
mv
命令,全称是 move,用于移动文件与目录,常用的参数如下:
-f
:若 destination 中存在同名文件,直接覆盖-i
:若 destination 中存在同名文件,要求用户确认是否覆盖
> mv [option] source0 [,source1 [,source2 [,...]]] destination
技巧:该命令可以用于重命名文件,例如将 A
重命名为 B
,则可以写作 mv A B
rm
命令,全称是 remove,用于删除文件与目录,常用的参数如下:
-r
:将子目录和文件一同删除,在删除目录时使用-f
:强制删除,无论文件或目录现在是什么状态都会删除-i
:删除前逐一询问是否要删除
> rm [option] source0 [,source1 [,source2 [,...]]]
注意:使用这个命令时一定要格外小心,因为在 Linux 中删除等于永久移除,永远也找不回来了
ln
命令,全称是 link,用于建立链接文件
> # 建立硬链接,此时新文件和原文件都指向同一份数据(实际上是指向同一个 i-node) > ln source destination > # 建立软链接,此时新文件只会存储原文件的位置信息,并不保存任何实际的文件内容 > ln -s source destination
这里直接用例子来说明:
> # 建立一个文件 fileA > touch fileA > # 创建 fileA 的硬链接 fileB > ln fileA fileB > # 创建 fileA 的软链接 fileC > ln -s fileA fileC # 此时三个文件的关系,大致可以用下图表示 # # i-node(指向实际保存数据的磁盘块) # / \ # / \ # fileA fileB # / # / # fileC(保存了 fileA 的位置信息) > # 写入 fileA > echo "Hello World" > fileA > # 查看 fileB 的内容,发现与 fileA 的内容相同 > # 因为 fileB 和 fileA 指向同一个 i-node,所以读取的数据是一样的 > cat fileB > # 查看 fileC 的内容,发现与 fileA 的内容相同 > # 因为 fileC 首先根据保存的位置信息找到 fileA,然后根据 fileA 指向的 i-node 读取磁盘内容 > cat fileC > # 删除 fileA > rm fileA # 此时三个文件的关系,大致可以用下图表示 # # i-node(指向实际保存数据的磁盘块) # \ # \ # fileB # # # fileC(保存了 fileA 的位置信息) > # 查看 fileB 的内容,发现和原来的一样 > # 删除 fileA 并不影响 fileB 指向原来的 i-node > cat fileB > # 查看 fileC 的内容,发现找不到对应的文件 > # 删除 fileA,fileC 根据保存的位置信息找不到 fileA > cat fileC
mkdir
命令,全称是 make directory,用于创建目录
> mkdir folder
顺便补充一下,创建一个文件,可以用 touch
命令来实现
> touch file
cat
命令,全称是 concatenate,用于读取并打印内容,常结合重定向符一起使用
若没有指定文件,则从键盘读取内容;如果有指定文件,则从文件读取内容
> # 由键盘读取内容,并通过重定向符写入到文件 > cat > file > # 由键盘读取内容,并通过重定向符追加到文件 > cat >> file > # 由文件读取内容,并打印在屏幕上,可用于查看文件 > cat file > # 由文件读取内容,并通过重定向符追加到另一个文件,可用于拼接文件 > cat file >> file2
由键盘读取内容时,按 Enter
确认输入,按 Ctrl+C
结束输入
more
命令,用于分页显示文件内容,对于长文件的阅读来说比较适合
> more file
在此阅读模式下,按Enter
滚动到下一行,按 Space
跳转到下一页,按 q
退出
less
命令,交互式地显示文件内容,对于长文件的阅读来说比较适合
> less file • 1
在此阅读模式下,可以用方向键
控制屏幕滚动,按 q
退出
head
命令和 tail
命令,分别用于显示文件最前面和最后面的内容,常用的参数如下:
-c Number
:指定显示 最前/最后 Number 个字节-n Number
:指定显示 最前/最后 Number 行
> # 显示文件最前面 5 个字节 > head -c 5 file > # 显示文件最后面 5 行 > tail -n 5 file
文章知识点与官方知识档案匹配,可进一步学习相关知识