diff --git "a/07 \347\216\213\345\217\221\346\247\220/2024.05.23 \347\273\203\344\271\240\345\222\214\344\275\234\344\270\232.md" "b/07 \347\216\213\345\217\221\346\247\220/2024.05.23 \347\273\203\344\271\240\345\222\214\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..8e40490100f410ae75d230ed05034d08981db14b --- /dev/null +++ "b/07 \347\216\213\345\217\221\346\247\220/2024.05.23 \347\273\203\344\271\240\345\222\214\344\275\234\344\270\232.md" @@ -0,0 +1,115 @@ +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + ​ + + ```js + hecs@wmm-16993:~$ touch .hidden.txt visible1.txt visible2.txt + hecs@wmm-16993:~$ ls + + ``` + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + ​ + + ```js + hecs@hecs-288034:~$ ls -alR + .: + total 20 + drwxr-xr-x 2 hecs hecs 4096 May 23 19:33 . + drwxr-xr-x 5 root root 4096 May 23 19:31 .. + -rw-r--r-- 1 hecs hecs 220 May 23 19:31 .bash_logout + -rw-r--r-- 1 hecs hecs 3526 May 23 19:31 .bashrc + -rw-r--r-- 1 hecs hecs 0 May 23 19:33 .hidden.txt + -rw-r--r-- 1 hecs hecs 807 May 23 19:31 .profile + -rw-r--r-- 1 hecs hecs 0 May 23 19:33 visible1.txt + -rw-r--r-- 1 hecs hecs 0 May 23 19:33 visible2.txt + hecs@hecs-288034:~$ + + ``` + +3. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + ​ + + ```js + hecs@wmm-16993:~/work_area$ mkdir project_a porject_b docs + hecs@wmm-16993:~/work_area$ ls + docs porject_b project_a + + ``` + +4. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + ​ + + ```js + hecs@wmm-16993:~$ mv *.txt work_area/docs + + ``` + +5. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + ​ + + ```js + hecs@wmm-16993:~$ echo "Initial notes for project A" > work_area/project_a/notes.txt + + ``` + +6. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + + ```js + hecs@wmm-16993:~/work_area/project_a$ cp notes.txt ../porject_b + ``` + +7. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + +```js + +hecs@wmm-16993:~/work_area$ ls -lhS docs +total 0 +-rw-r--r-- 1 hecs hecs 0 May 23 19:33 visible1.txt +-rw-r--r-- 1 hecs hecs 0 May 23 19:33 visible2.txt +hecs@wmm-16993:~/work_arek_area$ + +``` + +8. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + +```js + +hecs@wmm-16993:~/work_area$ rm -rf docs + +hecs@wmm-16993:~/work_area$ ls + +porject_b project_a + + +``` + +9. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + ​ + + ```js + + hecs@wmm-16993:~/work_area$ rm -r porject_b + hecs@wmm-16993:~/work_area$ ls + project_a + + + ``` + +10. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + +```js + +rm work_area/ +``` + +11. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + +```ruc'djs +hecs@wmm-16993:~$ mkdir -m 111 11h +hecs@wmm-16993:~$ ls +11h work_area +hecs@wmm-16993:~$ + +```