# 文件与目录管理 ## linux文件命名规则 - 严格区分大小写 - 文件命名不能使用字符`/` - 目录或文件名长度不能超过255个字符 建议: - 文件名由两个或两个以上单词组成时,使用`_`代替空格键 - 尽量不用字母的大小写来区分文件名或者目录名 --- ## 目录管理 ### 目录创建 ``` mkdir [选项] 目录名 -p:递归创建 ``` 示例: ``` 在/test目录下创建目录dir $ mkdir /test/dir 在/test目录下递归创建多级目录 $ mkdir -p /test/dir1/dir2/dir3 在/test目录下同时创建多个目录 $ mkdir /test/t1 /test/t2 /test/t3 或者切到test目录下执行 $ mkdir t1 t2 t3 ``` ### 目录删除 ``` rmdir [选项] 目录名 -p:递归删除 # 注意:仅能删除空目录 ``` 示例: ``` 删除/test目录下的dir目录 $ rmdir /test/dir 递归删除/test下的dir1、dir2、dir3 $ rmdir -p /test/dir1/dir2/dir3 同时删除多个目录 $ rmdir /test/t1 /test/t2 /test/t3 ``` --- ## 文件管理 ### 文件创建 ``` touch 文件名 ``` 示例: ``` 在当前目录下创建多个文件 $ touch 1.txt 2.txt 3.txt 或 $ touch t{1..3}.txt ``` ### 文件删除 ``` rm [选项] 文件或目录 -i:提示是否确认删除,系统默认加上此选项 -r:递归,主要针对目录 -f:强制删除 ``` 示例: ``` 同时删除多个文件 $ rm 1.txt 2.txt 3.txt # 会提示是否删除,输入:y确定,n取消 强制删除 $ rm -f 1.txt 2.txt 3.txt # 不会提示,直接删除,慎用! 递归删除,连同目录下的文件也一起删除 $ rm -r test 或者 $ rm -rf test ``` --- ## 文件的复制与剪切 ### cp - 复制 ``` cp [选项] 文件或目录 -r:递归 -a:一般复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容 -f:强制复制,覆盖时不会提示 -i:会提示 -d:复制是保留链接。类似windows系统中的快捷方式 -I:不复制文件,只生成链接文件 ``` 示例: ``` 复制文件test.txt到父目录中的shop目录下 $ cp test.txt ../shop 复制文件夹test到父目录中的teacher目录下 $ cp -r test ../teacher 复制后文件或目录重新命名:将文件test.txt复制到父目录中的shop下并改名为test1.txt $ cp test.txt ../shop/test1.txt 快捷复制文件 $ cp /usr/local/test.txt{,.bak} ``` ### mv - 剪切 ``` mv 文件或目录 目的地路径 ``` 示例: ``` 将test目录移动到/root/etc下 $ mv test /root/etc 将1.txt文件重命名为2.txt $ mv 1.txt 2.txt ``` --- ## 文件的查看 查看文件的几种工具介绍 ``` ls [选项] 文件或目录 :查看目录下的文件或目录信息 -l:详细显示/以列表形式显示 -a:显示隐藏文件或目录 -d:指定显示某个文件或目录 ``` 静态查看文件内容: ``` cat 文件名 :正序查看文件的内容 -n:显示行号 tac 文件名 :倒叙查看文件的内容 head -n 文件名 :查看文件的前n行内容 tail -n 文件名 :查看文件的后n行内容 -f:实时查看文件的最新内容(日志排错时用的比较多) ``` 动态查看文件内容(一般查看大型文件): ``` less [选项] 文件名 -N:显示行号 方向键“上下左右”可以移动显示 enter键:向下一行 d:向下半页 space键:向下一页 b:向上一页 g:移动至行首 G:移动至行尾 q:退出 输入"/"可以查找指定内容 ``` ``` more 文件名 enter键:向下一行 d:向下半页 space键:向下一页 b:向上一页 q:退出 (more命令在显示内容时已经将文件加载完毕后再展示,对于比较大的文件打开时可能卡顿) ```