diff --git "a/08\346\236\227\350\212\263\345\251\225/20240525\347\254\224\350\256\260-\347\273\235\345\257\271\350\267\257\345\276\204\344\270\216\347\233\270\345\257\271\350\267\257\345\276\204.md" "b/08\346\236\227\350\212\263\345\251\225/20240525\347\254\224\350\256\260-\347\273\235\345\257\271\350\267\257\345\276\204\344\270\216\347\233\270\345\257\271\350\267\257\345\276\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..8bc9fd661c4a6819275784399d8f6688aa74515e --- /dev/null +++ "b/08\346\236\227\350\212\263\345\251\225/20240525\347\254\224\350\256\260-\347\273\235\345\257\271\350\267\257\345\276\204\344\270\216\347\233\270\345\257\271\350\267\257\345\276\204.md" @@ -0,0 +1,387 @@ +## 绝对路径和相对路径笔记 +1. 绝对路径 +**定义**:从根目录 `/` 开始的完整路径,用于唯一确定文件或目录的位置。 + +**特点**: + +- 以 `/` 开头 +- 与当前工作目录无关 + +**示例**: +- `/home/user/documents/file.txt` +- `/usr/local/bin` + +#### 2. 相对路径 +**定义**:相对于当前工作目录的路径,用于在当前目录的基础上指向文件或目录。 + +**特点**: + +- 不以 `/` 开头 +- 依赖于当前工作目录 + +**特殊符号**: + +- `.` 表示当前目录 ./ +- `..` 表示上一级目录../ + +相关和目录可自行创建后再操作 + +第一次全部使用绝对路径 + +第二次全部使用相对路径,要求将当前路径设置为/tmp +## 绝对路径 +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c +```html +flfj@hecs-328451:~$ cp -r exam.c /tmp/shiyan.c +flfj@hecs-328451:~$ tree + +``` +2. 在任何目录下回到用户主目录? +```html +flfj@hecs-328451:/tmp$ cd + +``` +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? +```html +flfj@hecs-328451:~$ cd /tmp +flfj@hecs-328451:/tmp$ mkdir test +flfj@hecs-328451:/tmp$ cd test/ +flfj@hecs-328451:/tmp/test$ ls -al + +``` +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar +```html +flfj@hecs-328451:/tmp$ mkdir test2 +flfj@hecs-328451:/tmp$ cd test2 +flfj@hecs-328451:/tmp/test2$ touch 1.txt 2.txt 3.txt 4.txt 5.txt +flfj@hecs-328451:/tmp/test2$ tar -zcvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt +1.txt +2.txt +3.txt +4.txt +5.txt + +``` +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? +```html +flfj@hecs-328451:/tmp/test2$ touch file1.txt +flfj@hecs-328451:/tmp/test2$ mv file1.txt flie2.txt + +``` +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? +```html +flfj@hecs-328451:/tmp/test2$ vim +flfj@hecs-328451:/tmp/test2$ cat bbbb.txt +flfj + +``` +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中?从这开始做 +```html +flfj@hecs-328451:~$ cp -r *.txt *.doc *.bak /tmp/test + +``` +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 +```html +flfj@hecs-328451:/tmp$ cd test2 +flfj@hecs-328451:/tmp/test2$ touch file1.txt +flfj@hecs-328451:/tmp/test2$ cd +flfj@hecs-328451:~$ mkdir docs +flfj@hecs-328451:~$ mv /tmp/test2/file1.txt docs + +``` +9. 复制文件file2.txt从当前目录到家目录/backup中。 +```html +flfj@hecs-328451:~$ mkdir backup +flfj@hecs-328451:~$ cp -r /tmp/test2/file2.txt backup/ + +``` +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 +```html +flfj@hecs-328451:~$ mkdir archive +flfj@hecs-328451:~$ mv docs/file1.txt archive/ + +``` +11. 复制家目录/photos及其所有内容到家目录/backup中。 +```html +flfj@hecs-328451:~$ mkdir photos +flfj@hecs-328451:~$ cd photos/ +flfj@hecs-328451:~/photos$ touch 1.txt b.txt +flfj@hecs-328451:~/photos$ cd +flfj@hecs-328451:~$ cp -r photos/*.txt backup/ + +``` +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 +```html +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ touch report.doc +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ mkdir papers +flfj@hecs-328451:~$ mv docs/report.doc papers/final_report.doc +flfj@hecs-328451:~$ tree + +``` +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 +```html +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ touch note.txt +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ cp -r docs/note.txt backup/ + +``` +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 +```html +flfj@hecs-328451:~$ mkdir images +flfj@hecs-328451:~$ cd images/ +flfj@hecs-328451:~/images$ touch a.jpg b.jpg +flfj@hecs-328451:~/images$ ls +a.jpg b.jpg +flfj@hecs-328451:~/images$ cd +flfj@hecs-328451:~$ cp -r images/*.jpg photos/ + +``` +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 +```html +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ touch file1.txt file2.txt +flfj@hecs-328451:~/docs$ ls +file1.txt file2.txt note.txt +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ cp -r docs/*.txt backup/ + +``` +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 +```html +flfj@hecs-328451:~$ mkdir text_files +flfj@hecs-328451:~$ cp -r docs/*.txt text_files/ + +``` +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 +```html +flfj@hecs-328451:~$ mkdir temp +flfj@hecs-328451:~$ mv docs/*.txt temp/ + +``` +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 +```html +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ touch z.txt b.bak +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ mv -v docs/*.txt *.bak archive/ +renamed 'docs/z.txt' -> 'archive/z.txt' +renamed '3.bak' -> 'archive/3.bak' + +``` +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 +```html +flfj@hecs-328451:~/docs$ cp -r * /home/flfj/backup/ + +``` +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 +```html +flfj@hecs-328451:~$ mv -f docs/hu backup/ +``` +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 +```html +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ touch report.txt +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ cd archive/ +flfj@hecs-328451:~/archive$ touch report.txt +flfj@hecs-328451:~/archive$ cd +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ mv -b docs/report.txt archive/report.txt_bak +flfj@hecs-328451:~$ tree + +``` +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 +```html +flfj@hecs-328451:~$ mkdir pdf_files +flfj@hecs-328451:~$ cd docs/ +flfj@hecs-328451:~/docs$ a.pdf b.pdf +-bash: a.pdf: command not found +flfj@hecs-328451:~/docs$ touch a.pdf b.pdf +flfj@hecs-328451:~/docs$ cd +flfj@hecs-328451:~$ cp -r docs/*.pdf pdf_files/ +flfj@hecs-328451:~$ tree + +``` + +## 相对路径 +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c +```html +bbq@hecs-328451:~$ touch exam.c +bbq@hecs-328451:~$ ./tmp +bbq@hecs-328451:/tmp$ cp -r ../home/bbq/exam.c ./shiyan.c +``` +2. 在任何目录下回到用户主目录? +```html +bbq@hecs-328451:/tmp$ cd ../ + +``` +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? +```html +bbq@hecs-328451:/tmp$ mkdir test +bbq@hecs-328451:/tmp$ cd test/ +bbq@hecs-328451:/tmp/test$ ls -al + +``` +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar +```html +bbq@hecs-328451:/tmp$ mkdir test2 +bbq@hecs-328451:/tmp/test2$ touch 1.txt 2.txt 3.txt 4.txt 5.txt +bbq@hecs-328451:/tmp/test2$ tar -zcvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt +1.txt +2.txt +3.txt +4.txt +5.txt +bbq@hecs-328451:/tmp/test2$ ls +1.txt 2.txt 3.txt 4.txt 5.txt hailiang.tar + +``` +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? +```html +bbq@hecs-328451:/tmp/test2$ touch file1.txt +bbq@hecs-328451:/tmp/test2$ mv file1.txt file2.txt + +``` +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? +```html +bbq@hecs-328451:/tmp/test2$ vim + +``` +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中?从这开始做 +```html +bbq@hecs-328451:/tmp$ touch ~/1.txt +bbq@hecs-328451:/tmp$ touch ~/2.doc +bbq@hecs-328451:/tmp$ touch ~/3.bak +bbq@hecs-328451:/tmp$ cp -r ../home/bbq/1.txt ./test +bbq@hecs-328451:/tmp$ cp -r ../home/bbq/2.doc ./test +bbq@hecs-328451:/tmp$ cp -r ../home/bbq/3.bak ./test + + +``` +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 +```html +bbq@hecs-328451:/tmp$ cd test +bbq@hecs-328451:/tmp/test$ touch file1.txt +bbq@hecs-328451:/tmp/test$ mv file1.txt ./../../home/bbq/docs/ + +``` +9. 复制文件file2.txt从当前目录到家目录/backup中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/backup +bbq@hecs-328451:/tmp$ cd test2 +bbq@hecs-328451:/tmp/test2$ cp -r file2.txt ./../../home/bbq/backup/ +bbq@hecs-328451:/tmp/test2$ ls ~/backup/ +file2.txt + +``` +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 +```html +bbq@hecs-328451:/tmp/test2$ mkdir ./../home/bbq/archive +bbq@hecs-328451:/tmp/test2$ mv ./../../home/bbq/docs/*.txt ./../../home/bbq/archive/ + +``` +11. 复制家目录/photos及其所有内容到家目录/backup中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/phohos +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/photos/ ./../home/bbq/backup/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/backup/ + +``` +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 +```html +bbq@hecs-328451:/tmp$ touch ~/docs/report.doc +bbq@hecs-328451:/tmp$ ls ~/docs +bbq@hecs-328451:/tmp$ mv ./../home/bbq/docs/ ./../home/bbq/papers/ + +``` +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/docs +bbq@hecs-328451:/tmp$ touch ~/docs/notes.txt +bbq@hecs-328451:/tmp$ ls ~/docs +notes.txt +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/docs/notes.txt ./../home/bbq/backup/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/backup/ +file2.txt notes.txt photos + +``` +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/images +bbq@hecs-328451:/tmp$ ls ./../home/bbq/ +bbq@hecs-328451:/tmp$ touch ./../home/bbq/images/a.jpg +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/images/*.jpg ./../home/bbq/photos/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/photos/ +a.jpg + +``` +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 +```html +bbq@hecs-328451:/tmp$ touch ./../home/bbq/docs/file1.txt +bq@hecs-328451:/tmp$ touch ./../home/bbq/docs/file2.txt +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/docs/*.txt ./../home/bbq/backup/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/backup/ +file1.txt file2.txt notes.txt photos + +``` +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/text_files +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/docs/*.txt ./../home/bbq/text_files/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/text_files/ +file1.txt file2.txt notes.txt + +``` +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/temp +bbq@hecs-328451:/tmp$ mv ./../home/bbq/docs/* ./../home/bbq/temp/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/temp/ +file1.txt file2.txt notes.txt + +``` +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 +```html +bbq@hecs-328451:/tmp$ mv -v ./../home/bbq/docs/* ./../home/bbq/archive/ +renamed './../home/bbq/docs/aaa.txt' -> './../home/bbq/archive/aaa.txt' + +``` +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 +```html +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/docs/as +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/docs/* ./../home/bbq/backup/ +bbq@hecs-328451:/tmp$ ls ./../home/bbq/docs/ +aaa.txt as +bbq@hecs-328451:/tmp$ ls ./../home/bbq/backup/ +aaa.txt as file1.txt file2.txt notes.txt photos +``` +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 +```html +bbq@hecs-328451:/tmp$ mv ./../home/bbq/docs/* ./../home/bbq/backup/ + +``` +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 +```html +bbq@hecs-328451:/tmp$ ls ./../home/bbq/docs/ +report.txt +bbq@hecs-328451:/tmp$ ls ./../home/bbq/archive/ +aaa.txt file1.txt +bbq@hecs-328451:/tmp$ touch ./../home/bbq/archive/report.txt +bbq@hecs-328451:/tmp$ ls ./../home/bbq/archive/ +aaa.txt file1.txt report.txt +bbq@hecs-328451:/tmp$ mv ./../home/bbq/docs/report.txt ./../home/bbq/archive/report.txt_bak +bbq@hecs-328451:/tmp$ ls ./../home/bbq/archive/ +aaa.txt file1.txt report.txt report.txt_bak + +``` +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 +```html +bbq@hecs-328451:/tmp$ touch ./../home/bbq/docs/qqq.pdf +bbq@hecs-328451:/tmp$ mkdir ./../home/bbq/pdf_files +bbq@hecs-328451:/tmp$ cp -r ./../home/bbq/docs/*.pdf ./../home/bbq/pdf_files/ + +``` \ No newline at end of file