Linux操作系统 §2:基本命令(文件和目录的基本操作)
Posted 5cmpers
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 file{1..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/dir{2..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:基本命令(文件和目录的基本操作)的主要内容,如果未能解决你的问题,请参考以下文章