Linux操作系统 §2:基本命令Ⅰ(文件和目录的基本操作)

Posted 秒五

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux操作系统 §2:基本命令Ⅰ(文件和目录的基本操作)相关的知识,希望对你有一定的参考价值。

本篇你将掌握的内容(文末有总结全图):

文章目录

2.0 引入

前篇概述提到,Linux的初步学习可以类比Windows来帮助理解,本篇开始之前先声明一下两个大件:文件目录,本篇就是围绕他俩的操作来讲的。咱们先从创建他们开始吧!

2.0.5 Shell命令格式

2.1 创建文件 touch

2.1.1 示例

我们首先来创建一个文件吧!

touch file1 #创建文件file1

2.1.2 扩展

如果我们想要一次性创建多个file怎么办呢?
(touch file1 file2 file3 file4…太麻烦了)

touch file1..10 #file1,file2......file10

即为创建文件file1,file2…file10。

2.1.3 参数列表

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][–help][–version][文件或目录…]
参数说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。

2.2 创建目录 mkdir (making directory)

2.2.1 示例

创建完文件,我们来创建第二大件目录吧!

mkdir dir1 #创建目录dir1

2.2.2 扩展

2.2.2.1 创建子子目录

上面的常规创建文件目录默认是创建在当前目录,那么怎么在子目录下dir1目录下创建子子目录dir2呢?

mkdir -p dir1/dir2 #在dir1目录下创建dir2

[-p]参数的作用是确保dir1目录存在,不存在的话创建一个dir1,再在dir1下创建dir2。

2.2.2.2 同时创建多个子子目录

怎么同时一个子目录下创建多个子子目录呢?

mkdir -p dir1/dir2..4 #在dir1下同时创建dir2...dir4

2.2.3 参数列表

mkdir [-p] dirName
参数说明:
-p 确保目录名称存在,不存在的就建一个。

2.3 查询显示当前位置下的文件和目录 ls(2.6讲解)

ls #查看当前位置的文件和目录

既然查询的是当下位置的情况,那我怎么知道当下我在哪呢?这就有了

2.4 查询当前目录 pwd (print working directory)


现在我想显示我在dir1目录下的子目录dir2,怎么访问呢?
第一种方式是,移动当前位置到dir1下,再ls显示dir2,就有了:

2.5 移动当前位置 cd (change directory)

2.5.1 示例

cd dir1 #将当前位置移动到dir1目录下

2.5.2 扩展

2.5.2.1 相对路径和绝对路径

既然要移动当前位置,就要指出,在Linux中路径有两种表示方法:

-相对路径:相对于当前位置的路径(类似于ip地址)

-绝对路径:硬盘中固定的位置路径(类似于mac地址)

注:只要不是以[/]开头的路径都是相对路径

2.5.2.2 示例

  • 相对路径表示法:
cd ./dir1 #相对路径表示法
  • 绝对路径表示法
cd /home #绝对路径表示法

2.5.2.3 主目录,当前目录,上层目录

  • 切换到主目录cd ~
  • 切换到当前目录cd ./
  • 切换到上层目录cd ../

第二种方法是直接查询显示目录下的文件:

2.6 显示指定目录下的内容 ls (list files)

2.6.1 示例

ls dir1/dir2 #查询显示dir1/dir2的文件和目录。

2.6.2 扩展

2.6.2.1 显示隐藏文件目录

ls -a #显示所有文件目录包含隐藏文件目录

注:以[.]开头的文件为隐藏文件。

2.6.2.2 显示详细信息

ls -l #显示详细信息

2.6.3 参数列表

ls [-alrtAFR] [name…]
参数 :
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出


2.7 复制文件 cp (copy)

2.7.1 示例

cp dir1/file1 dir2/file2 #将dir1目录下file1复制到dir2目录下并改名file2,若dir2或file2不写,分别代表 复制到当前目录下 和 不改名。

2.7.2 参数列表

cp [options] source… directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。


2.8 重命名或移动文件 mv (move file)

2.8.1 示例

重命名:

mv file1 file2 #将file1改名为file2。

移动文件:

mv file1 dir1 #将file1移动到dir1目录下。

移动/重命名:

mv dir1/ dir2 #将dir1目录移动到dir2目录下,若dir2目录不存在,则将dir1目录改名为dir2目录。

2.8.2 扩展 (霸权)

一个霸王要将dir2目录下所有文件都移动到dir1下(归为己有)怎么办呢?

$ mv dir2/* dir1 #将dir2目录下所有文件都移动到dir1下

(美元符号暗示了什么)

2.8.3 参数列表

mv [options] source dest
mv [options] source… directory
参数说明:
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。


2.9 删除

2.9.1 删除空目录rmdir (remove directory)

2.9.1.1 示例

rmdir dir1 #删除dir1空目录

注:rmdir只能删除空目录。

2.9.1.2 参数列表

rmdir [-p] dirName
参数:
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

2.9.2 删除一个文件或目录 rm (remove)

2.9.2.1 示例

  • 删除文件:
rm file1 #删除file1
  • 删除目录(必须配合[-r]使用
rm -r dir1 #删除dir1

2.9.2.2 扩展 (毁灭吧!)

毁灭吧,所有的文件目录!(删除当前目录下所有的文件目录)

rm -r * #删除当前目录下所有文件目录。

其实[*]在很多地方都表示【所有的】,比如SQLserver等。

2.9.2.3 参数列表

rm [options] name…
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。


2.10 总结


既然看到最后了,如对您有所帮助,期望您能点个小小的赞,这会是对我莫大的鼓励与支持!
由于个人能力和见识有限,如有不当之处,还请批评指出,一起交流进步!

以上是关于Linux操作系统 §2:基本命令Ⅰ(文件和目录的基本操作)的主要内容,如果未能解决你的问题,请参考以下文章

网易云课堂_Linux操作系统入门(嵌入式开发零基础Ⅰ)_课时13文件增删及拷贝

Linux操作系统 §2:基本命令(文件和目录的基本操作)

Linux 基本操作命令

基于操作系统原理的Linux 的基本操作和常用命令的使用

linux基本操作命令的使用

linux 基本命令常用选项(目录和文件)