diff --git "a/51 \346\235\216\346\254\243/20240523\346\226\207\344\273\266\345\217\212\347\233\256\345\275\225\346\223\215\344\275\234.md" "b/51 \346\235\216\346\254\243/20240523\346\226\207\344\273\266\345\217\212\347\233\256\345\275\225\346\223\215\344\275\234.md" new file mode 100644 index 0000000000000000000000000000000000000000..6d02227c9c239b406f5edbe6e2f4e1ee1857ff46 --- /dev/null +++ "b/51 \346\235\216\346\254\243/20240523\346\226\207\344\273\266\345\217\212\347\233\256\345\275\225\346\223\215\344\275\234.md" @@ -0,0 +1,143 @@ +#### 文件及目录操作 + +##### ls 列出当前目录下的文件和目录 + +ls 路径/文件夹A 列出指定目录文件夹A下的文件和目录 + +ls -d 路径/文件夹A 列出处文件夹A本身信息 + +ls -t 根据修改时间排序 + +ls-r 反向排序 + +ls-s 根据文件大小排序 + +##### cd 改变当前目录 + +cd - 返回上次所在国录 + +cd ~ / cd 无 返回家目录 + +pwd 显示当前工作目录的绝对路径 + +dirl=$(pwd) 将当前目录的路径保存到变量中 + +##### mkdir 创建目录 + +mkdir -p /tmp/新目录 创建临时目录,不长期保留,与用户文件隔离 + +##### rm 删除文件或目录 + +rm -i 删除前会询问 + +rm -r 递归删除回的子文件和目录 + +rm -v 显示删除过程 + +#### 作业 + +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + +```js +lmd@hecs-288852:~/tmp$ touch .hidden.txt visible1.txt visible2.txt +``` + +​ + +1. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + +```js +lmd@hecs-288852:~/tmp$ ls -al +total 16 +drwxr-xr-x 4 lmd lmd 4096 May 23 22:49 . +drwxr-xr-x 5 lmd lmd 4096 May 23 12:44 .. +-rw-r--r-- 1 lmd lmd 0 May 23 22:49 .hidden.txt +-rw-r--r-- 1 lmd lmd 0 May 23 22:49 visible1.txt +-rw-r--r-- 1 lmd lmd 0 May 23 22:49 visible2.txt +``` + + + +1. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + +```js +lmd@hecs-288852:~/tmp$ mkdir work_area +lmd@hecs-288852:~/tmp$ cd work_area/ +lmd@hecs-288852:~/tmp/work_area$ mkdir project_a project_b docs +``` + +1. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + +```js +lmd@hecs-288852:~/tmp$ mv *.txt .*.txt work_area/docs/ +``` + +1. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + +```js +lmd@hecs-288852:~/tmp/work_area/project_a$ touch notes.txt +lmd@hecs-288852:~/tmp/work_area/project_a$ vim notes.txt +``` + + + +1. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + +```js +lmd@hecs-288852:~/tmp$ cp -r work_area/project_a work_area/project_a_backup +lmd@hecs-288852:~/tmp$ mv work_area/project_a_backup work_area/project_b/ +``` + + + +1. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + +```js +lmd@hecs-288852:~/tmp/work_area/docs$ ls -alhs +total 8.0K +4.0K drwxr-xr-x 2 lmd lmd 4.0K May 23 23:01 . +4.0K drwxr-xr-x 4 lmd lmd 4.0K May 23 22:59 .. + 0 -rw-r--r-- 1 lmd lmd 0 May 23 22:49 .hidden.txt + 0 -rw-r--r-- 1 lmd lmd 0 May 23 22:49 visible1.txt + 0 -rw-r--r-- 1 lmd lmd 0 May 23 22:49 visible2.txt +``` + + + +1. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + +```bash +lmd@hecs-288852:~/tmp$ rm work_area/docs/* -r +lmd@hecs-288852:~/tmp$ rm work_area/docs/.* -r +``` + + + +1. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + +```js +lmd@hecs-288852:~/tmp$ rm work_area/project_b -rf +``` + + + +1. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + +```js +lmd@hecs-288852:~/tmp$ rm work_area/* -d +``` + + + +1. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + +```js +lmd@hecs-288852:~$ vim .bashrc +alias 11h ='ls -lh' +lmd@hecs-288852:~$ llh +total 4.0K +drwxr-xr-x 4 lmd lmd 4.0K May 23 12:28 tmp +``` +