diff --git "a/17 \345\217\266\345\255\220\350\261\252/5.23\344\275\234\344\270\232 .md" "b/17 \345\217\266\345\255\220\350\261\252/5.23\344\275\234\344\270\232 .md" new file mode 100644 index 0000000000000000000000000000000000000000..856779f879e65ce13a76b804a90502ae675248ab --- /dev/null +++ "b/17 \345\217\266\345\255\220\350\261\252/5.23\344\275\234\344\270\232 .md" @@ -0,0 +1,214 @@ +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + ~~~js + cp exam.c tmp/shiyan.c + ~~~ + +2. 在任何目录下回到用户主目录? + + + +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + ~~~js + ls -al + ~~~ + + + +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + + ~~~js + tar -cvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt + ~~~ + + + +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + + ~~~js + mv filel.txt file2.txt + ~~~ + + + +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + + ~~~js + vim bbb.txt + 按i进入 编辑模式 + 输入用户名 + wq保存 + ~~~ + + + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + + ~~~js + cp *.bak tmp/test2 + cp *.doc tmp/test2 + cp *.txt tmp/test2 + ~~~ + + + +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 + + ``` + mv file1.txt ../docs/ + ``` + + + + + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + + ~~~js + mv filel2.txt ../backup/ + ~~~ + + + +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + + ~~~js + mv * ../archive/ + ~~~ + + + +11. 复制家目录/photos及其所有内容到家目录/backup中。 + + ~~~js + cp * ../archive/ + ~~~ + + + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + + ~~~js + mv report.doc ../papers/rinal_report.doc + ~~~ + + + +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + + ~~~js + cp notes.txt ../backup/ + ~~~ + + + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + + ~~~js + cp *.jpg ../photo/ + ~~~ + + + +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + + ~~~js + cp file1.txt file2.txt ../backup/ + ~~~ + + + +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 + + ~~~js + cp *.txt ../text_files + ~~~ + + + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + + ~~~js + mv -f * ../temp/ + ~~~ + + + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + + ~~~js + cp -v * ../backup/ + ~~~ + + + +19. 复制家目录 /docs中的所有子目录及其内容到家目录/backup中。 + + ~~~js + cp * ../backup/ + ~~~ + + + +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + + ~~~js + ~~~ + + + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + + ~~~js + mv -b report.txt ../archive/report.txt_bak + ~~~ + + + +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +~~~js +cp -n *.pdf ../pdf_files +~~~ + +#### 笔记 + +##### cp复制 cp 源文件 目标目录 + +~~~js +复制到目录:cp 源文件 目标目录 +复制文件到目录: cp 源文件 目标目录 +复制目录:cp -r 源目录 目标目录 +复制多个文件:cp 文件1 文件2 文件3 目录 + +参数:-r 递归复制 + -i问是否覆盖 + -p 保留原属性,包括相间 + -v 显示详细的复制进度 + -u 源文件比目标文件新时才会覆盖 + -f 强制复制 + -b 备份文件 +~~~ + +#### mv移动 + +1. 当是移动时,只能是文件移到目录 +2. 如何分辩是移动还是重命名 + 1. 源文件 - 目标文件 + 1. 目标已经存在:源文件替换了目标文件 + 2. 目标不存在:直接将源文件改名为目标文件 + 2. 源文件 -目标目录 + 1. 目标存在:将源文件移到目标目录里 + 2. 目标不存在:重命名 + 3. 源目录 - 目标目录 + 1. 目标已存在:将源移到目标里 + 2. 已经不存在:重命名 + +~~~js +mv 文件 目标目录 +移动并重命名:mv 源文件 目标目录/新名字 + mv 源目录 目标目录/新名字 +~~~ + diff --git "a/17 \345\217\266\345\255\220\350\261\252/5.23\347\273\203\344\271\240.md" "b/17 \345\217\266\345\255\220\350\261\252/5.23\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..f824df2c1629b402fb8a3298836c25647ca353c3 --- /dev/null +++ "b/17 \345\217\266\345\255\220\350\261\252/5.23\347\273\203\344\271\240.md" @@ -0,0 +1,120 @@ +相关和目录可自行创建后再操作 + +### 练习题 1:复制文件 + +假设你有两个目录:`/home/user/docs` 和 `/home/user/backup`。 + +1. 将`/home/user/docs`目录下的`file1.txt`复制到`/home/user/backup`目录下。 + + ``` + docs/filel.txt backup/ + ``` + + + +2. 复制`/home/user/docs`目录下的所有`.txt`文件到`/home/user/backup`目录下。 + + ``` + cp docs/*.txt backup/ + ``` + + + +### 练习题 2:复制文件夹及其内容 + +1. 假设`/home/user/photos`是一个包含多个图片文件夹的目录,请复制整个`/home/user/photos`目录及其所有内容到`/home/user/archive`目录下。 + +2. ``` + cp -r photo/ archive/ + ``` + + + +### 练习题 3:移动文件 + +1. 将`/home/user/docs`目录下的`file2.docx`移动到`/home/user/papers`目录下。 + + ``` + mv docs/filel2.docx papers/ + ``` + + + +2. 如果`/home/user/papers`目录下已经有一个名为`file2.docx`的文件,请确保移动操作会询问你是否要覆盖它。 + + + + ``` + mv -i docs/filel2.docx papers/ + ``` + + + +### 练习题 4:重命名文件 + +1. 将`/home/user/docs`目录下的`oldname.pdf`重命名为`newname.pdf`。 + + ``` + cp oldname.pdf newname.pdf + ``` + + + +### 练习题 5:结合使用 + +1. 复制`/home/user/docs`目录下的`report.md`到`/home/user/temp`,然后将复制过去的文件重命名为`temp_report.md`。 + + ``` + cp docs/report.md temp/temp_report.md + ``` + + + +2. 将`/home/user/docs`目录下所有以`.doc`结尾的文件移动到`/home/user/processed`,并且如果这些文件在目标目录中已经存在,则不覆盖它们。 + + ``` + mv -n docs/*.doc processed/ + ``` + + + +### 练习题 6:使用通配符 + +1. 复制`/home/user/docs`目录下所有以`.jpg`或`.png`结尾的图片文件到`/home/user/images`目录。 + + + + ``` + cp docs/*.jpg images/ + ``` + + + +### 练习题 7:详细输出 + +1. 使用`cp`命令复制文件时,显示详细的复制信息。 + + ``` + cp -v docs/1.doc photo/ + ``` + + + +2. 使用`mv`命令移动文件时,显示详细的移动信息。 + + ``` + mv -v docs/1.doc photo/ + ``` + + + +### 练习题 8:更新文件 + +1. 如果`/home/user/backup`目录中已经有一个与`/home/user/docs`目录下的`file1.txt`同名的文件,并且`/home/user/docs/file1.txt`的内容是更新的,请使用`cp`命令将更新的文件复制到备份目录,并覆盖旧文件(假设你知道旧文件可以被安全地覆盖)。 + + ``` + cp -u backup/filel.txt docs/ + ``` + + +