From 6a62c702bc63719fb4a06ac274cc42af90937031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9B=AA=E5=BD=B1?= <2156239329@qq.com> Date: Sun, 26 May 2024 11:24:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=8B=E9=9B=AA=E5=BD=B1=E7=9A=84=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...32\345\222\214\347\273\203\344\271\240.md" | 344 ++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 "01 \347\216\213\351\233\252\345\275\261/20240524 \344\275\234\344\270\232\345\222\214\347\273\203\344\271\240.md" diff --git "a/01 \347\216\213\351\233\252\345\275\261/20240524 \344\275\234\344\270\232\345\222\214\347\273\203\344\271\240.md" "b/01 \347\216\213\351\233\252\345\275\261/20240524 \344\275\234\344\270\232\345\222\214\347\273\203\344\271\240.md" new file mode 100644 index 0000000..991ef9b --- /dev/null +++ "b/01 \347\216\213\351\233\252\345\275\261/20240524 \344\275\234\344\270\232\345\222\214\347\273\203\344\271\240.md" @@ -0,0 +1,344 @@ +## 作业 + +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + +```js +abc@hecs-344360:~$ touch exam.c +abc@hecs-344360:~$ mkdir tmp +abc@hecs-344360:~$ cp exam.c tmp/shiyan.c +``` + +1. 在任何目录下回到用户主目录? + +```js +abc@hecs-344360:~/tmp$ cd +abc@hecs-344360:~$ +``` + +1. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + +```js +abc@hecs-344360:~/tmp/test$ ls -la +total 8 +drwxr-xr-x 2 abc abc 4096 May 26 10:34 . +drwxr-xr-x 3 abc abc 4096 May 26 10:34 .. +``` + +1. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + +```js +abc@hecs-344360:~/tmp$ mkdir test2 +abc@hecs-344360:~/tmp$ touch 1.txt 2.txt 3.txt 4.txt 5.txt +abc@hecs-344360:~/tmp$ cd ../ +abc@hecs-344360:~$ tar -cvf hiliang.tar tmp.tar +tmp.tar +``` + +1. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + +```js +abc@hecs-344360:~$ touch file1.txt +abc@hecs-344360:~$ mv file1.txt file2.txt +``` + +1. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + +```JS +abc@hecs-344360:~$ vim bbbb.txt +``` + +1. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + +```js +abc@hecs-344360:~$ touch 1.doc 1.bak +abc@hecs-344360:~$ cp *.txt *.doc *.bak tmp/test +``` + +1. 将文件file1.txt从当前目录移动到家目录的/docs中。 + +```js +abc@hecs-344360:~$ touch file1.txt +abc@hecs-344360:~$ mkdir docs +abc@hecs-344360:~$ mv file1.txt docs +``` + +1. 复制文件file2.txt从当前目录到家目录/backup中。 + +```js +abc@hecs-344360:~$ mkdir backup +abc@hecs-344360:~$ mv file2.txt backup +``` + +1. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + +```js +abc@hecs-344360:~$ mkdir archive +abc@hecs-344360:~$ mv docs/* archive +``` + +1. 复制家目录/photos及其所有内容到家目录/backup中。 + +```js +abc@hecs-344360:~$ cd photos/ +abc@hecs-344360:~/photos$ touch w.txt y.txt +abc@hecs-344360:~/photos$ cd ../ +abc@hecs-344360:~$ mv photos/* backup/ +``` + +1. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + +```js +abc@hecs-344360:~$ cd docs/ +abc@hecs-344360:~/docs$ touch reprot.doc +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ mkdir papers +abc@hecs-344360:~$ mv docs/reprot.doc papers/final_reprot.doc +``` + +1. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + +```js +abc@hecs-344360:~$ cd docs/ +abc@hecs-344360:~/docs$ touch notes.txt +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ cp docs/notes.txt backup/ +``` + +1. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + +```js +abc@hecs-344360:~$ mkdir images +abc@hecs-344360:~$ cd images/ +abc@hecs-344360:~/images$ touch 1.jpg 2.jpg +abc@hecs-344360:~/images$ cd ../ +abc@hecs-344360:~$ cp images/*.jpg photos/ +``` + +1. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + +```js +abc@hecs-344360:~/docs$ touch file1.txt file2.txt +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ cp docs/file1.txt docs/file2.txt backup/ +``` + +1. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 + +```js +abc@hecs-344360:~$ mkdir text_files +abc@hecs-344360:~$ cp docs/*.txt text_files/ +``` + +1. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + +```js +abc@hecs-344360:~$ mv -i docs/* tmp +mv: overwrite 'tmp/1.txt'? y +mv: overwrite 'tmp/2.txt'? y +``` + +1. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + +```js +abc@hecs-344360:~$ cd docs/ +abc@hecs-344360:~/docs$ touch q.txt w.txt +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ mv -v docs/* archive/ +renamed 'docs/q.txt' -> 'archive/q.txt' +renamed 'docs/w.txt' -> 'archive/w.txt' +``` + +1. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 + +```js +abc@hecs-344360:~/docs$ mkdir qwe +abc@hecs-344360:~/docs$ touch e.txt +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ cp -r docs/* backup/ +``` + +1. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + +```js +abc@hecs-344360:~$ mv docs/[^temp_]* backup/ +``` + +1. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + +```js +abc@hecs-344360:~$ cd docs/ +abc@hecs-344360:~/docs$ touch reprot.txt +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ cd archive/ +abc@hecs-344360:~/archive$ touch reprot.txt +abc@hecs-344360:~/archive$ cd ../ +abc@hecs-344360:~$ mv -b docs/reprot.txt archive/reprot.txt_bak +``` + +1. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +```js +abc@hecs-344360:~$ cd docs/ +abc@hecs-344360:~/docs$ touch 1.pdf 2.pdf +abc@hecs-344360:~/docs$ cd ../ +abc@hecs-344360:~$ cd pdf_files/ +abc@hecs-344360:~/pdf_files$ touch 1.pdf 2.pdf +abc@hecs-344360:~/pdf_files$ cd ../ +abc@hecs-344360:~$ cp -i docs/*.pdf pdf_files/ +cp: overwrite 'pdf_files/1.pdf'? n +cp: overwrite 'pdf_files/2.pdf'? n +``` + +## 练习 + +相关和目录可自行创建后再操作 + +### 练习题 1:复制文件 + +假设你有两个目录:`/home/user/docs` 和 `/home/user/backup`。 + +1. 将`/home/user/docs`目录下的`file1.txt`复制到`/home/user/backup`目录下。 + +```js +连接成功 +Linux hecs-344360 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 + + Welcome to Huawei Cloud Service + +Last login: Thu May 23 15:17:30 2024 from 183.253.241.165 +root@hecs-344360:~# su wxy +wxy@hecs-344360:/root$ cd ../ +wxy@hecs-344360:/$ cd ~ +wxy@hecs-344360:~$ mkdir docs backup +wxy@hecs-344360:~$ cd docs/ +wxy@hecs-344360:~/docs$ touch file1.txt +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ cp docs/file1.txt backup +``` + +1. 复制`/home/user/docs`目录下的所有`.txt`文件到`/home/user/backup`目录下。 + +```js +wxy@hecs-344360:~$ cp docs/*.txt backup/ +``` + +### 练习题 2:复制文件夹及其内容 + +1. 假设`/home/user/photos`是一个包含多个图片文件夹的目录,请复制整个`/home/user/photos`目录及其所有内容到`/home/user/archive`目录下。 + +```js +wxy@hecs-344360:~$ mkdir photos archive +wxy@hecs-344360:~$ cp -r photos/ archive/ +``` + +### 练习题 3:移动文件 + +1. 将`/home/user/docs`目录下的`file2.docx`移动到`/home/user/papers`目录下。 + +1. 如果`/home/user/papers`目录下已经有一个名为`file2.docx`的文件,请确保移动操作会询问你是否要覆盖它。 + +```js +wxy@hecs-344360:~$ mkdir papers +wxy@hecs-344360:~$ cd docs/ +wxy@hecs-344360:~/docs$ touch file2.docx +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ mv -i docs/file2.docx papers/ +mv: overwrite 'papers/file2.docx'? y +``` + +### 练习题 4:重命名文件 + +1. 将`/home/user/docs`目录下的`oldname.pdf`重命名为`newname.pdf`。 + +```js +wxy@hecs-344360:~$ cd docs/ +wxy@hecs-344360:~/docs$ touch oldname.pdf +wxy@hecs-344360:~/docs$ mv oldname.pdf newname.pdf +wxy@hecs-344360:~/docs$ ls +newname.pdf +``` + +### 练习题 5:结合使用 + +1. 复制`/home/user/docs`目录下的`report.md`到`/home/user/temp`,然后将复制过去的文件重命名为`temp_report.md`。 + +```js +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ mkdir temp +wxy@hecs-344360:~$ cd docs/ +wxy@hecs-344360:~/docs$ touch reprot.md +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ cp docs/reprot.md temp/ +wxy@hecs-344360:~$ cd temp/ +wxy@hecs-344360:~/temp$ mv reprot.md temp_reprot.md +wxy@hecs-344360:~/temp$ ls +temp_reprot.md +``` + +1. 将`/home/user/docs`目录下所有以`.doc`结尾的文件移动到`/home/user/processed`,并且如果这些文件在目标目录中已经存在,则不覆盖它们。 + +```js +wxy@hecs-344360:~$ mkdir processed +wxy@hecs-344360:~/docs$ touch 1.doc 2.doc +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~/processed$ touch 1.doc 2.doc +wxy@hecs-344360:~/processed$ cd ../ +wxy@hecs-344360:~$ mv -i docs/*.doc processed/ +mv: overwrite 'papers/file2.docx'? n +``` + +### 练习题 6:使用通配符 + +1. 复制`/home/user/docs`目录下所有以`.jpg`或`.png`结尾的图片文件到`/home/user/images`目录。 + +```js +wxy@hecs-344360:~/docs$ touch 1.jpg 2.jpg 1.png 2.png +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ mkdir images +wxy@hecs-344360:~$ cp docs/*.jpg docs/*.png images/ +``` + +### 练习题 7:详细输出 + +1. 使用`cp`命令复制文件时,显示详细的复制信息。 + +```js +wxy@hecs-344360:~$ cd docs +wxy@hecs-344360:~/docs$ touch 1.txt 2.txt 3.txt +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ cp -rv docs/*.txt temp +'docs/1.txt' -> 'temp/1.txt' +'docs/2.txt' -> 'temp/2.txt' +'docs/3.txt' -> 'temp/3.txt' +'docs/file1.txt' -> 'temp/file1.txt' +``` + +1. 使用`mv`命令移动文件时,显示详细的移动信息。 + +```js +wxy@hecs-344360:~$ mv -v docs/*.txt photos +renamed 'docs/1.txt' -> 'photos/1.txt' +renamed 'docs/2.txt' -> 'photos/2.txt' +renamed 'docs/3.txt' -> 'photos/3.txt' +renamed 'docs/file1.txt' -> 'photos/file1.txt' +``` + +### 练习题 8:更新文件 + +1. 如果`/home/user/backup`目录中已经有一个与`/home/user/docs`目录下的`file1.txt`同名的文件,并且`/home/user/docs/file1.txt`的内容是更新的,请使用`cp`命令将更新的文件复制到备份目录,并覆盖旧文件(假设你知道旧文件可以被安全地覆盖)。 + +```js +wxy@hecs-344360:~$ cd docs +wxy@hecs-344360:~/docs$ touch file1.txt +wxy@hecs-344360:~/docs$ cd ../ +wxy@hecs-344360:~$ cd backup +wxy@hecs-344360:~/backup$ touch file1.txt +wxy@hecs-344360:~/backup$ cd ../ +wxy@hecs-344360:~$ echo "更新更新更新" > backup/file1.txt +wxy@hecs-344360:~$ echo "更新*n" > docs/file1.txt +wxy@hecs-344360:~$ cp -i docs/file1.txt backup/file1.txt +cp: overwrite 'backup/file1.txt'? y +``` + -- Gitee