Linux文件管理

Linux文件管理

学习目标

  • 了解文件名规则和工作中的建议命名规则
  • 会创建和删除目录mkdir/rmdir
  • 会创建和删除文件touch/rm
  • 了解复制cp和移动mv的区别会使用tar命令进行压缩和解压缩
  • 掌握vm的保存和退出和不保存强制退出q!
  • 掌握vim的快捷方式yy,dd,gg,G,u
  • 会使用tail命令来查看文件
  • 会使用find命令按照文件名称查找文件

1linux下文件命名规则

1.1可以使用那些字符?

理论上除了/之外其他都可以,但要注意,在目录名或文件名中,不建议使用某些特殊字符,如<、>、?、等

工作时文件的命名规则:

l 由于linux严格区分大小写,所有,尽量都用小写字母

l 如果必须对文件名进行分割,建议使用"_"

_下划线,在linux操作系统中,可以使用shift+减号

1.2文件名的长度

目录名和文件名长度不能超过255个字符

1.3文件名的大小写

Linux操作系统中严格区分大小写,

个人建议:

不要使用字符大小写来区分不同的文件或目录。建议文件名 一律使用小写字母

1.4文件扩展名

Linux文件扩展名对linux操作系统没有任何特殊含义,linux操作系统不以文件扩展名进行分类文件,在linux操作系统中文件扩展名的用途是为了让人更好区分文件类型

2文件管理命令

2.1目录的创建与删除

创建目录

基本语法:mkdir 目录名称

主要功能:就是根据目录的名称创建一个目录

案例 创建一个asd的文件夹

powershell 复制代码
# mkdir asd

递归创建目录 mkdir -p

-p 递归创建 从左边的路径开始一级一级创建目录,直到路径结束

powershell 复制代码
# mkdir -p /user/local/nginx/conf

使用mkdir同时创建多个目录

powershell 复制代码
# mkdir a b c

2.2目录的删除(必须是空目录)

2.2.1移除空目录

基本语法:

powershell 复制代码
# rmdir 目录名称

2.2.2 rmdir -p递归删除空目录

基本语法

powershell 复制代码
#rmdir -p 目录名称1/目录名称2/目录名称3/...

主要功能:从右向左一级一级删除空目录

3 文件创建

3.1 touch创建文件

基本语法:

powershell 复制代码
# touch 文件名称

主要功能:在linux系统中在当前目录下创建一个文件

3.2使用touch命令同时创建多个文件

基本语法:

powershell 复制代码
# touch 文件名称1 文件名称2 文件名称3...

3.3 根据序号同时创建多个文件

基本语法:

powershell 复制代码
# touch 文件名称{开始序号..结束序号}

含义:根据提供的开始序号和结束序号一个一个的创建文件

4 文件的删除

基本语法:

powershell 复制代码
# rm [选项] 文件或文件夹名称

选项说明:

-r : 针对文件夹,代表递归删除,先把目录下的所有文件删除,然后在删除文件夹

-f : 强制删除,不提示,直接删除,慎用!!!

-rf :没有任何提示,强制递归删除。

5 复制

5.1 cp复制操作

基本语法:

powershell 复制代码
# cp [选项] 源文件或文件夹 目录文件

选项说明:

-r : 递归复制,主要针对文件夹

案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中

powershell 复制代码
# cp readme.txt /tmp/

5.2 cp复制并重命名文件

基本语法:

powershell 复制代码
# cp [选项] 源文件或文件夹 目标路径/新文件或文件夹的名称

案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中并重命名为readme.txt.bak

powershell 复制代码
# cp readme.txt /tmp/readme.txt.bak

5.3 cp复制文件夹到指定路径

powershell 复制代码
# cp -r 源文件夹名称 目标路径/

案例: 把shop目录连同其内部的文件统一进行复制到/tmp目录下

powershell 复制代码
#mkdir shop //创建shop文件家
# touch shop/index.php shop/admin.phop shop/config.php //在shop中建立三个文件
#cp -r shop /tmp/  将shop整体复制到/tmp中去

6剪切

基本语法:

powershell 复制代码
# mv 源文件或文件夹 目标路径/

案例:把readme.txt文件剪切到/tmp/目录下

powershell 复制代码
# mv readme.txt /tmp/

案例:把shop文件夹移动到/usr/local/nginx目录下

powershell 复制代码
#mkdir /usr/local/nginx
#mv shop /usr/local/nginx/

7 重命名操作

什么是重命名 ?简单来说,就是给一个文件夹或文件更改名字

基本语法:

powershell 复制代码
# mv 源文件或文件夹名称 修改后的文件或文件夹名称

案例:把readme.txt文件更改为README.md文件

powershell 复制代码
# mv readme.txt README.md

8 打包压缩与解压缩

8.1 linux打包操作

基本语法:

powershell 复制代码
# tar [选项] 打包后的名称.tar 多个文件或文件夹

选项说明:

-c :打包

-f :打包后的文件名称

-v : 显示打包进度

powershell 复制代码
案例:把a.tt、b.tbt、c.txt文件打包到abc.tar文件中
#tar cvf abc.tar a.txt b.txt c.txt
案例:把微信文件夹进行打包微信.tar
#tar-cvfwechat,tar wechat

8.2几个概念

打包:默认情况下,linux的压缩概念是一次性之呢个压缩一个文件,针对多个文件或文件夹无法直接压缩,所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。

打包只是把多个文件或文件夹放在一个文件中,但并没有进行压缩,所以其大小还是原来所有文件的总和。

压缩 也是一个文件或目录的集合,且这个集合也是被存储到一个文件中的,但他们不同的是,压缩文件1所占用的磁盘空间比集合所占用的文件大小总和要小。

8.3 tar -tf以及 tar -uf

powershell 复制代码
#  tar -tf 打包后的文件

主要功能: 查看tar包中的文件信息

powershell 复制代码
案例 :查看abc.tar包中的文件信息
# tar -uf abc.tar
powershell 复制代码
# tar -uf 打包后的文件

主要功能:向tar包里追加更新内容

powershell 复制代码
案例; 向abc.tar包里添加一个d.txt文件
# touch d.txt
# tar -uf abc.tar d.txt
查看是否添加成功
#tar -tf abc.tar

扩展:如何把tar包中的文件释放出来

powershell 复制代码
打包
# tar -cf abc.tar a.txt b.txt c.txt
打包=>>释放(-c 变成 -x)
释放
#tar -xf abc.tar 

8.4 打包并压缩(重点)

基本语法:

powershell 复制代码
# tar [选项] 压缩后的压缩包  要压缩的文件
选项说明
 -cf : 对文件或文件夹进行打包
 -v  : 显示压缩的进度
 - z : 使用gzip压缩工具把打包后的文件进行压缩为.gz
 -j  : 使用bzip2压缩工具把打包后的文件压缩为.bz2
 -J  : 使用xz压缩工具把打包后的文件压缩为.xz

案例 :把a.txt b.txt c.txt文件打包压缩为abc.tar.gz

powershell 复制代码
创建三个文件
#touch a.txt b.txt c.txt
对abc 三个文件进行打包压缩
#tar -zcf abc.tar.gz a.txt b.txt c.txt

8.5 对压缩包进行解压

之前说过,解压过程非常简单,就是把压缩的参数中的c 换成x就可以实现解压缩了

powershell 复制代码
解压操作
* .tar.gz格式的压缩包
# tar -zxf 名称 .tar.gz
* .tar.bz2格式的压缩包
# tar -jxf 名称 .tar.bz2
* .tar.xz格式的压缩包
# tar -Jxf 名称 .tar.xz

8.6zip压缩与解压缩

8.6.1zip压缩

基本语法:

powershell 复制代码
# zip [选项] 压缩后的文件名称.zip 文件或文件夹
选项说明
-r :递归压缩,主要针对的是文件夹

linux下已经有gzip.bzip.xz等压缩命令了,为什么还需要zip?

答:zip格式在windows以及linux中都是可以正常使用的

案例: 把a.txt b.txt c.txt 进行压缩为abc.zip

powershell 复制代码
# touch a.txt b.txt c.txt
#zip abc.zip a.txt b.txt c.txt

案例:把wechat文件夹压缩为wechat.zip

powershell 复制代码
# zip -r wechat.zip wechat

8.6.2unzip解压缩

基本语法:

powershell 复制代码
#unzip 压缩包名称   =====>>   解压到当前目录
#unzip 压缩包名称  -d  指定路径   =====>>  解压到指定路径

案例: 把abc.zip进行解压

powershell 复制代码
# unzip abc.zip

案例: 把abc.zip 解压到/usr/local目录下

powershell 复制代码
 # unzip abc.zip -d /usr/local/