目录
一、Linux下文件命名规则
1、可以使用哪些字符?
2、文件名的长度
3、文件名的大小写
4、Linux文件扩展名
二、Linux下的文件管理
1、文件夹创建
① mkdir创建文件夹
② mkdir -p递归创建文件夹(目录)
③ 使用mkdir同时创建多个文件夹(目录)
总结:
2、文件夹(目录)删除(必须是空目录)
① rmdir移除空文件夹(目录)
② rmdir -p递归删除空文件夹(目录)
③ 使用rmdir同时删除多个空文件夹(目录)
总结:
3、文件创建
① touch创建文件
② 使用touch命令同时创建多个文件
③ {1..5}根据序号同时创建多个文件
总结:
4、文件删除
① 普通删除
总结:
② 扩展:rm -rf /*,一定要慎重
5、复制操作
① cp复制操作
② cp复制并重命名文件
③ cp复制文件夹到指定路径
总结:
6、剪切操作
7、重命名操作
8、打包压缩与解压缩
① 几个概念
② Linux打包操作
③ tar -tf以及tar -uf
④ 打包并压缩(学习的重点
⑤ 对压缩包进行解压
9、zip压缩与解压缩
① zip压缩
② unzip解压缩
总结:
一、Linux下文件命名规则
1、可以使用哪些字符?
理论上除了字符“/”之外,所有的字符都可以使用
但是要注意,在目录名或文件名中,不建议使用某些特殊字符,例如, <、>、?、* 等,尽量避免使用。
工作时文件的命名规则:
① 由于linux严格区分大小写,所以 尽量都用小写字母
② 如果必须 对文件名进行分割,建议使用"_" ,例如:coderwwh_csdn_2023.log
2、文件名的长度
目录名或文件名的长度不能超过 255 个字符
3、文件名的大小写
Linux目录名或文件名是区分大小写的
个人建议:
不要使用字符大小写来区分不同的文件或目录。 建议文件名 一律使用小写字母
4、Linux文件扩展名
Linux文件的扩展名对 Linux 操作系统没有特殊的含义,Linux 系统并不以文件的扩展名开分区文件类型。例如,coderwwh.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行的。
在Linux系统中,文件扩展名的用途为了 使运维人员更好的区分不同的文件类型 。
二、Linux下的文件管理
1、文件夹创建
(下文中:目录也就是文件夹的意思)
在实际应用中,与目录相关的操作主要有两个:创建目录与删除目录
① mkdir创建文件夹
基本语法:
mkdir name
mkdir = make directory
主要功能:就是根据目录的名称创建一个文件夹(目录)
② mkdir -p递归创建文件夹(目录)
基本语法:
# mkdir -p /usr/local/nginx/conf
选项说明:
-p:递归创建,从左边的路径开始一级一级创建文件夹(目录),直到路径结束
③ 使用mkdir同时创建多个文件夹(目录)
# mkdir 目录名称1 目录名称2 目录名称3 ...
总结:
一个目录一个目录创建# mkdir 目录名称
多级目录一起创建# mkdir -p 目录名称1/目录名称2/...
同时创建多个目录# mkdir 目录名称1 目录名称2 目录名称3
2、文件夹(目录)删除(必须是空目录)
① rmdir移除空文件夹(目录)
remove directory,移除目录
# rmdir 目录名称
② rmdir -p递归删除空文件夹(目录)
# rmdir -p 目录名称1/目录名称2/目录名称3/...
主要功能:从右向左一级一级删除空目录
③ 使用rmdir同时删除多个空文件夹(目录)
# rmdir 目录名称1 目录名称2 目录名称3 ...
总结:
# rmdir 目录名称,删除某个空目录
# rmdir -p 目录名称1/目录名称2/目录名称3/...,同时删除多级目录(从右向左一级一级删除)
# rmdir 目录名称1 目录名称2 目录名称3,同时删除多个空目录
3、文件创建
① touch创建文件
基本语法:
# touch 文件名称
主要功能:在Linux系统中的当前目录下创建一个文件
② 使用touch命令同时创建多个文件
基本语法:
# touch 文件名称1 文件名称2 文件名称3 ...
提出问题:观察以下命令,看看有何区别?
第一种写法:touch shop/index.php shop/admin.php shop/config.php
代表在shop目录下首先创建一个index.php,在创建一个admin.php,最后config.php
第二种写法:touch shop/index.php admin.php config.php
代表在shop目录下首先创建index.php,然后在当前目录下创建admin.php,最后在当前目录下创建config.php
③ {1..5}根据序号同时创建多个文件
# touch 文件名称{开始序号..结束序号}
含义:
根据提供的开始序号~结束序号,一个一个创建文件
总结:
# touch 文件名称
# touch 文件名称1 文件名称2 文件名称3 ...
# touch 文件名称{开始序号..结束序号}
4、文件删除
① 普通删除
基本语法:
# rm [选项] 文件或文件夹的名称
选项说明:
-r :针对文件夹,代表递归删除,先把目录下的所有文件删除,然后在删除文件夹
-f :强制删除,不提示,初学者一定要慎重!!!
扩展:Ctrl + C在Linux下的使用方式
在Linux操作系统中,Ctrl + C不是复制,而是中断某个操作
总结:
# rm 文件名称
# rm 文件名称1 文件名称2 文件名称3 ...
# rm -f 文件名称 => 强制删除,不提示
# rm -rf 文件夹名称 => 递归删除文件夹
② 扩展:rm -rf /*,一定要慎重
# rm -rf /* => 代表删除根目录下的所有文件(如果没有备份,恢复的几率不高)
rm :删除
-r :递归删除(无论文件夹是否为空)
-f :强制删除不提示
/ :代表根分区
* :所有
5、复制操作
① cp复制操作
# cp [选项] 源文件或文件夹 目标路径
选项说明:
-r :递归复制,主要针对文件夹
案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中
# cp readme.txt /tmp/
② cp复制并重命名文件
基本语法:
# cp [选项] 源文件或文件夹 目标路径/新文件或文件夹的名称
案例:把readme.txt文件从当前目录复制一份放到/tmp文件夹中并重命名为readme.txt.bak
# cp readme.txt /tmp/readme.txt.bak
③ cp复制文件夹到指定路径
# cp -r 源文件夹名称 目标路径/
案例:把shop目录连通其内部的文件统一复制到/tmp目录下
# mkdir shop
# touch shop/index.php shop/admin.php shop/config.php
# cp -r shop /tmp/
总结:
复制文件# cp 源文件名称 指定路径
复制文件并重命名# cp 源文件名称 指定路径/新文件名称
复制文件夹# cp -r 源文件夹 指定路径
6、剪切操作
基本语法:
# mv 源文件或文件夹 目标路径/
mv = move,剪切、移动的含义
案例:把readme.txt文件剪切到/tmp目录下
# mv readme.txt /tmp/
案例:把shop文件夹移动到/usr/local/nginx目录下
# mkdir /usr/local/nginx # mv shop /usr/local/nginx/
7、重命名操作
什么是重命名?简单来说,就是给一个文件或文件夹更改名称
基本语法:
# mv 源文件或文件夹名称 新文件或文件夹的名称
案例:把readme.txt文件更名为README.md文件
# mv readme.txt README.md
案例:把shop文件目录更名为wechat目录
# mkdir shop # mv shop wechat
总结:
剪切文件 # mv 源文件名称 目标路径/
剪切文件夹 # mv 源文件夹名称 目标路径/
重命名 # mv 源文件或文件夹名称 新文件或文件夹名称
8、打包压缩与解压缩
① 几个概念
打包:默认情况下,Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。
打包只是把多个文件或文件夹打包放在一个文件中,但是并没有进行压缩,所以其大小还是原来所有文件的总和。
压缩:也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件所占用的磁盘空间比集合中所有文件大小的总和要小。
② Linux打包操作
基本语法:
# tar [选项] 打包后的名称.tar 多个文件或文件夹
选项说明:
-c :打包
-f :filename,打包后的文件名称
-v :显示打包的进度
-u :update缩写,更新原打包文件中的文件(了解)
-t :查看打包的文件内容(了解)
案例:把a.txt、b.txt、c.txt文件打包到abc.tar文件中
# tar -cf abc.tar a.txt b.txt c.txt
③ tar -tf以及tar -uf
主要功能:查看tar包中的文件信息
案例:查看abc.tar包中的文件信息
# tar -tf abc.tar
案例:向abc.tar包中添加一个d.txt文件
# touch d.txt
# tar -uf abc.tar d.txt
查看是否添加成功
# tar -tf abc.tar
扩展:如何把tar包中的文件释放出来
打包
# tar -cf abc.tar a.txt b.txt c.txt
打包 => 释放(-c 变成 -x)
释放
# tar -xf abc.tar
④ 打包并压缩(学习的重点
# tar [选项] 压缩后的压缩包名称 要压缩的文件或文件夹
选项说明:
-cf :对文件或文件夹进行打包
-v :显示压缩进度
-z :使用gzip压缩工具把打包后的文件压缩为.gz
-j :使用bzip2压缩工具把打包后的文件压缩为.bz2
-J :使用xz压缩工具把打包后的文件压缩为.xz
压缩速度:gzip > bzip2 > xz
压缩率:gzip < bzip2 < xz
100M 90M 80M 70M
案例:把a.txt、b.txt、c.txt文件打包并压缩为abc.tar.gz
# tar -zcf abc.tar.gz a.txt b.txt c.txt
⑤ 对压缩包进行解压
解压过程非常简单,就是把压缩的参数中的c换成x就可以实现解压缩了
案例:把abc.tar.gz格式的压缩包进行解压缩操作
# tar -zxf abc.tar.gz
9、zip压缩与解压缩
① zip压缩
Linux下已经有gzip、bzip2以及xz压缩命令了,为什么还需要使用zip压缩呢?
答:zip格式在Windows以及Linux中都是可以正常使用的。
# zip [选项] 压缩后的文件名称.zip 文件或文件夹
选项说明:
-r :递归压缩,主要针对的是文件夹
案例:把a.txt、b.txt、c.txt进行压缩为abc.zip
# zip abc.zip a.txt b.txt c.txt
② unzip解压缩
# unzip 压缩包名称 => 解压到当前目录
# unzip 压缩包名称 -d 指定路径 => 解压到指定路径下
总结:
在Linux操作系统中,其拥有很多压缩工具,如gzip、bzip2、xz等等,但是其有一个缺点:
一次只能压缩一个文件(而且无法压缩文件夹)