From 80415f55e7380367d519a23f58e1dfb71b46cfaf Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 24 May 2024 21:54:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240523cp\345\222\214mv.md" | 55 ++++++ .../20240518\344\275\234\344\270\232.md" | 0 .../20240523 \344\275\234\344\270\232.md" | 180 ++++++++++++++++++ 3 files changed, 235 insertions(+) create mode 100644 "\350\216\253\346\265\267\345\251\214/20240523cp\345\222\214mv.md" rename "\350\216\253\346\265\267\345\251\214/20240518\344\275\234\344\270\232.md" => "\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" (100%) create mode 100644 "\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240523 \344\275\234\344\270\232.md" diff --git "a/\350\216\253\346\265\267\345\251\214/20240523cp\345\222\214mv.md" "b/\350\216\253\346\265\267\345\251\214/20240523cp\345\222\214mv.md" new file mode 100644 index 0000000..fc1169c --- /dev/null +++ "b/\350\216\253\346\265\267\345\251\214/20240523cp\345\222\214mv.md" @@ -0,0 +1,55 @@ +### cp:用于复制文件和目录 + + - 复制文件:`cp 源文件 目标文件` + - 复制文件到目录: cp 源文件 目标目录 + - 复制目录:`cp -r 源目录 目标目录` :没-r复制不了目录 + +##### 一些常用选项 + +``` +1. -r 或 -R (递归): 用于复制目录及其内容,包括子目录和文件。 +2. -i (交互式): 在覆盖已存在的文件之前提示用户确认,避免不小心覆盖重要文件。 +3. -f (强制): 强制覆盖已存在的文件,不会提示用户。 +4. -u (更新): 只有当源文件比目标文件新或者目标文件不存在时才复制,适用于增量备份。 +5. -v (详细): 显示复制操作的过程,包括被复制的文件名,有助于监控复制进度。 +6. -p (保留): 保留源文件的属性,如权限、所有权、时间戳等。 +7. -a (归档): 类似于 `-pdr` 的组合,递归复制目录并保留文件属性,但不复制特殊文件如软链接。 +``` + + + +### mv:用于移动文件或目录,或者对它们进行重命名 + + - 移动文件或目录:`mv 源目录/文件 目标目录` + - 重命名文件或目录:`mv 原文件名 新文件名` + +原则: + + 目标不存在,一定重命名 + +1. 当是移动时,只能是文件移到目录 +2. 如何分辩是移动还是重命名 + 1. 源文件 - 目标文件 + 1. 目标已经存在:源文件替换了目标文件 + 2. 目标不存在:直接将源文件改名为目标文件 + 2. 源文件 -目标目录 + 1. 目标存在:将源文件移到目标目录里 + 2. 目标不存在:将源文件改为目标名 + 3. 源目录 - 目标目录 + 1. 目标已存在:将源移到目标里 + 2. 已经不存在:源目录改为目标目录名 + +##### 一些常用的选项 + +``` +-i: 在覆盖已存在的文件或目录之前提示用户确认,以避免意外覆盖。 +-f: 强制移动操作,如果目标文件已存在,则不提示直接覆盖。 +-u: 只有当源文件比目标文件新或者目标文件不存在时才移动或重命名。 +-v: 显示详细的操作过程,包括移动的文件名,便于追踪操作进度。 +-b: 在覆盖文件前,为已存在的文件创建一个备份。默认情况下,备份文件的名称会加上一个波浪线(如 file.txt~)。 +-s: 指定备份文件使用的后缀,代替默认的波浪线。 +-t: 指定目标目录,适用于移动多个文件到同一目录下。 +``` + + + diff --git "a/\350\216\253\346\265\267\345\251\214/20240518\344\275\234\344\270\232.md" "b/\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" similarity index 100% rename from "\350\216\253\346\265\267\345\251\214/20240518\344\275\234\344\270\232.md" rename to "\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" diff --git "a/\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240523 \344\275\234\344\270\232.md" "b/\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240523 \344\275\234\344\270\232.md" new file mode 100644 index 0000000..3bed448 --- /dev/null +++ "b/\350\216\253\346\265\267\345\251\214/\344\275\234\344\270\232/20240523 \344\275\234\344\270\232.md" @@ -0,0 +1,180 @@ +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + ``` + wx@hecs-169992:~$ touch exam.c + wx@hecs-169992:~$ cp exam.c /tmp/shiyan.c + ``` + +2. 在任何目录下回到用户主目录? + + ``` + cd ~ + ``` + + + +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + + ``` + wx@hecs-169992:/tmp$ ls -la + + ``` + + + +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + + ``` + wx@hecs-169992:/tmp/test2$ touch 1.txt 2.txt 3.txt 4.txt 5.txt + wx@hecs-169992:/tmp/test2$ tar -cvf hailiang.tar *.txt + + ``` + + + +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + + ``` + wx@hecs-169992:/tmp/test2$ mv file1.txt file2.txt + ``` + + + +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + + ``` + vim bbbb.txt + 按i进入编辑模式,将用户名输入,输入完成后,按esc退出插入模式,输入wq! + ``` + + + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + + ``` + wx@hecs-169992:~$ cp *.txt *.doc *.bak /tmp/test + ``` + + + +8. 将文件file1.txt从当前目录移动到家目录的/docs中 + + ``` + wx@hecs-169992:/tmp$ mv file1.txt /home/wx/docs + ``` + + + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + + ``` + wx@hecs-169992:/tmp$ cp file2.txt /home/wx/backup + ``` + + + +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + + ``` + wx@hecs-169992:~$ mv docs/* archive + ``` + + + +11. 复制家目录/photos及其所有内容到家目录/backup中。 + + ``` + wx@hecs-169992:~$ cp -r photos/ backup/ + ``` + + + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + + ``` + wx@hecs-169992:~/docs$ mv report.doc ../papers/final_report.doc + ``` + + + +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + + ``` + wx@hecs-169992:~/docs$ cp notes.txt ../backup/ + ``` + + + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + + ``` + wx@hecs-169992:~$ cp images/*.jpg photos/ + ``` + + + +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + + ``` + wx@hecs-169992:~/docs$ cp file* ../backup + ``` + + + +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 + + ``` + wx@hecs-169992:~$ cp docs/*.txt text_files/ + ``` + + + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + + ``` + wx@hecs-169992:~$ cp docs/* temp/ + ``` + + + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + + ``` + wx@hecs-169992:~$ mv docs/* archive/ -v + + ``` + + + +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 + + ``` + wx@hecs-169992:~$ cp -r docs/* backup/ + ``` + + + +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + + ``` + wx@hecs-169992:~$ find ~/docs/* -type f,d ! -name 'temp*' -print0 | xargs -0 mv -t ~/backup/ + ``` + + + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + + ``` + mv -bS _bak archive/report backup + ``` + + + +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +``` +wx@hecs-169992:~$ cp docs/*.pdf pdf_files/ +``` + -- Gitee