Ⅲ. 移动文件与重命名操作
0x00 引入:剪贴功能
如果我们想把一个文件移动的到指定的目录下,在 Windows 里我们都是直接拖动的。
还可以右键文件,使用 "剪贴" 功能然后粘贴到你想要放置它的目录下,
点击粘贴后,原来的位置就没有了,文件就移动过去了。
刚才我们说了复制,除了复制外,当然还有剪贴功能。
同样的,在 Linux 下我们用 mv 指令去移动我们的文件:
下面我们来正式介绍一下。
0x01 mv 命令
mv [选项] 源文件或目录 目标文件或目录
🔨 功能:① 剪贴文件或目录(可以剪贴普通文件,也可以整体剪贴目录)
② 重命名(类似于Windows中的重命名)
📃 说明:
视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至一个新的 目录中。
当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至 目标目录中。
📜 常用选项:
-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件 (destination) 已经存在时,就会询问是否覆盖。
0x02 重命名目录文件
💭 mv 命令除了剪贴功能,还有一个重命名的功能。
$ mv [文件] [新名字] # 重命名
0x03 对于删除文件的补充
Linux 中,一定要注意不要轻易地删除文件,除非你特别的确认。
因为 Linux 没有真正的回收站,不像 Windows 你删了可以去回收站找。
Linux 中你删了就真的删了,但是如果你想 Linux 里也有像 Windows 那样的回收站,
我们通过 shell 脚本把 rm 改造成 mv,这个需要用 vim 去改。
💬 感兴趣可以试试:(将 rm 改造成 mv)
vim ~/.bashrc #修改这个文件 mkdir -p ~/.trash alias rm=trash alias ur=undelfile undelfile() { mv -i ~/.trash/\$@ ./ } trash() { mv $@ ~/.trash/ }
定义两个 Linux 命令,把 rm 命令用 mv 命令重改,做一个回收站。
Ⅳ. 查看目标文件内容
0x00 cat 指令
我们前面已经用过这个命令了,现在我们来正式讲解一下这个命令。
cat [选项][文件]
🔨 功能:打印文件内容(查看目标文件的内容)
📜 常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
📜 cat -n 选项:打印的内容带上行号
$ cat -n # 打印,但是带行号
❓ 思考:cat 把文件内容打印出来,有什么用?
cat 有点像C语言中把文件内容全部读出来然后打印到屏幕上,
它比较适合用来查看短的文本或者代码,如果我们只是单纯的想把文件打开看看,
我们就可以 cat 一下这个文件,这就像 Winodws 里双击打开记事本一样。
0x01 tac 指令
这是一个比较有意思的指令!
cat 倒过来就是 tac,它的功能自然不言而喻,倒着打印文件内容:
$ tac [文件]
📌 注意事项:tac 不能像 cat 一样 cat -n 带行号打印!
0x02 cat 不适合打印长文本
cat 命令适合短文本的打印,那长文本我们可以用什么打印呢?
💭 为了有实际场景方便讲解,我们先伪造出一个十万行的文本:
(建议直接复制粘贴到XShell里)
cnt=1; while [ $cnt -le 100000 ]; do echo "Hello! $cnt"; let cnt++; done
打印了十万行 Hello,如果我们想把它存起来,我们可以在末尾加一个 > [文件名]
(直接把下面的命令复制粘贴 shift+insert 进去就行,至于这里的 > 我们下一篇会详细讲解)
$ cnt=1; while [ $cnt -le 100000 ]; do echo "Hello! $cnt"; let cnt++; done > large.txt
(我们用 vim 打开看看)
搞定,现在我们就形成了一个十万行的文本了。
💭 像这种大的文件,我们用 cat 显示看看:
🔺 结论:cat 不适合查看大文本,因为它会刷屏,最后让我们查到的永远都是最后几段。
我们刚才创建的 latge.txt 足足有十万行,把 cat 都吓傻了。
💭 对于这种长文本,我们如果想查看可以使用 more 指令:
$ more large.txt
占满一个屏幕后就不往下显示了,如果想继续往下显示,按回车:
当然,more 还有许多选项,我们下面来正式介绍一下。
0x03 more 指令
more [选项][文件]
🔨 功能:类似于cat,但是更适合查看长文本
📜 常用选项:
-n 对输出的所有行编号
按 Q 退出查看
💭 more -n :比如我们想直接查看第 10000 行的内容
$ more 10000 large.txt # 查看第10000行
0x04 less 指令
less 更是重量级!
more 仅能向前移动,却不能向后移动,但 less 支持前后翻,我们更推荐使用 less。
less [参数] 文件
🔨 功能:less 与 more 类似,但 使用 less 可以随意浏览文件。
📃 说明:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极 其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
📜 常用选项:
-i 忽略搜索时的大小写
-N 显示每行的行号 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能
n 重复前一个搜索(与 / 或 ? 有关)
N 反向重复前一个搜索(与 / 或 ? 有关)
按 Q 推出查看
less 可以帮助我们进行查看文本,可以用它来进行日志查看!
0x05 head & tail 指令
head [参数]... [文件]... tail [参数]... [文件]...
📃 指令说明:
head 默认打印前10行内容,tail 默认打印后10行内容。如果想指定行数可以加 -n 选项。
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块。
head 用来显示档案的开头至标准输出中,而 tail 自然就是看档案的结尾。
📜 常用选项:
-n 显示的行数
💭 用法演示:我们拿之前创建的有十万行的 large.txt 去测试效果:
0x06 管道 |
❓ 思考:如果我想查看 large.txt 文本的 行的内容呢?
① 方法1:临时文件法
② 方法2:走管道
$ head -30020 large.txt | tail -20
是不是非常的爽?我们下面就来说说这个 "管道 | " 究竟是什么。
现实生活中的管道,运输石油、天然气的管道,是运送资源的枢纽。
(高中地理:管道运输是五大运输方式之一)
而在计算机世界中,资源是 "数据",可以理解为是计算机互联网世界的石油。
而这个符号 " | " 就像是一个管道一样,所以我们称之为管道,我们来看看它的作用:
📚 管道的作用:级联多个命令,来完成流水线式的数据处理工作。
💭 用法演示:我们提取一些 large.txt 文件中的数据