diff --git "a/22\351\202\271\345\220\221\345\216\237/2024-05-21-\345\210\233\345\273\272\346\226\207\344\273\266\345\244\271\343\200\201\346\211\223\345\214\205\345\216\213\347\274\251\343\200\201\344\270\213\350\275\275\344\270\212\344\274\240.md" "b/22\351\202\271\345\220\221\345\216\237/2024-05-21-\345\210\233\345\273\272\346\226\207\344\273\266\345\244\271\343\200\201\346\211\223\345\214\205\345\216\213\347\274\251\343\200\201\344\270\213\350\275\275\344\270\212\344\274\240.md" index 913ba82145b312558f26a4601d6a07aacfb271fe..a97098be4aba9a50de9e42962411a74c29cf8763 100644 --- "a/22\351\202\271\345\220\221\345\216\237/2024-05-21-\345\210\233\345\273\272\346\226\207\344\273\266\345\244\271\343\200\201\346\211\223\345\214\205\345\216\213\347\274\251\343\200\201\344\270\213\350\275\275\344\270\212\344\274\240.md" +++ "b/22\351\202\271\345\220\221\345\216\237/2024-05-21-\345\210\233\345\273\272\346\226\207\344\273\266\345\244\271\343\200\201\346\211\223\345\214\205\345\216\213\347\274\251\343\200\201\344\270\213\350\275\275\344\270\212\344\274\240.md" @@ -131,7 +131,7 @@ adduser高级创建命令 自动创建家目录,建立相关参数 重命名`Python项目`为`数据分析项目`。 ```jade - #rm -rf 编程项目 + #mv 编程项目 数据分析项目 ``` diff --git "a/22\351\202\271\345\220\221\345\216\237/2024-05-22-\346\226\207\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" "b/22\351\202\271\345\220\221\345\216\237/2024-05-22-\346\226\207\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..6cf392bdeed86cfc4ea9517ab14c67ff46ad1db0 --- /dev/null +++ "b/22\351\202\271\345\220\221\345\216\237/2024-05-22-\346\226\207\344\273\266\345\217\212\346\226\207\344\273\266\345\244\271\347\256\241\347\220\206.md" @@ -0,0 +1,135 @@ +## 文件及文件夹管理 + +### ls:列出目录内容 + +```bash +ls # 列出当前目录下的文件和目录 +ls 文件夹a # 列出指定目录文件夹a中的文件和目录 +ls -d 文件夹a # 列出文件夹a的本身信息,而不是他下面的目录和内容 +ls -a # 列出当前目录下所有的文件,隐藏文件和目录 +ls -l # 以长格式列出当前目录下的文件和目录,包括权限、所有者、组、大小、创建日期等信息 +ls -h # 列出当前目录下的文件大小,KB、MB、GB等 +ls -t # 根据时间排序列出当前目录下的文件和目录 默认是从大到小 +ls -r # 反向排序列出当前目录下的文件和目录 +ls -s # 根据文件大小排序列出当前目录下的文件和目录 +ls -R # 递归列出当前目录及其子目录下的所有文件和目录 +``` + +### cd:切换当前目录 + +```bash +cd 目录名 # 进入某个目录 +cd ../../ # 返回上二级目录 +cd ~ 或者 cd /home/用户名 # 返回家目录 +cd - # 返回上次所在的目录 +``` + +### pwd:显示当前工作目录的绝对路径 + +```bash +pwd # 显示当前工作目录的绝对路径 +``` + +### mkdir:创建一个新目录 + +```bash +mkdir 目录名 # 创建一个新目录 +mkdir 路径/目录名 # 在指定路径下创建目录 +mkdir -p 父目录/子目录 # 创建多个目录,包括父目录 +mkdir -m 权限模式 目录名 # 创建具有特定权限的目录 +mkdir -p /tmp/新目录 # 创建临时目录,不长期保留,与用户文件隔离 +``` + +### rmdir:删除空目录 + +```bash +rmdir 目录名 # 只能删除空的目录 +``` + +rm:删除文件或目录 + +```bash +rm -i 文件名 # 删除指定文件并询问是否删除 +rm -f 文件名 # 强制删除指定文件,但不会询问 +rm -f 1.txt 2.txt # 同时删除多个文件 +rm -f a* # 删除所有以a开头的文件 +rm -f .* # 删除隐藏文件(但有可能会删除当前目录下的所有隐藏文件) +rm -r 目录名 # 递归的删除目录及其子目录和文件并询问是否删除 +rm -rf 目录名 # 递归的强制删除目录及其子目录和文件并且不询问 +rm -rfv 目录名 # 处理递归强制删除外,还会显示删除步骤 +rm -d 目录名 # 只删除空目录 +``` + +## 作业 + +**创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + +```bash +touch .hidden.txt visible1.txt visible2.txt +``` + +**列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + +```bash + ls -al +``` + +**创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + +```bash +mkdir -p work_area +cd /home/work_area +mkdir project_a project_b docs +``` + +**移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + +```bash +mv .hidden.txt visible1.txt visible2.txt /home/work_area/docs +``` + +**创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + +```bash +cd /home/work_area/project_a +touch notes.txt +vim notes.txt +``` + +**复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + +```bash +cp -r work_area/project_a work_area/project_b/project_a_backup +``` + +**列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + +```bash + ls -ls +``` + +**删除所有文件**:删除`work_area/docs`目录下所有文件。 + +```bash +rm -f v* //删除指定文件 +rm -f .* //删除隐藏文件 +``` + +**删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + +```bash + rm -rf project_b +``` + +**清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + +```bash +rmdir docs +``` + +**创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + +```bash + alias llh='ls -lh' //alias 原代码='新代码' +``` +