相信大家平时都会有需要复制粘贴数据的时候,如果是打开文件进行复制粘贴,就不可避免的需要较多的鼠标与键盘的操作,就会比较繁琐。那么有没有可以省掉这些繁琐操作的复制粘贴的方法呢"color: #ff0000">Linux 中的数据流
谈到 Linux 的重定向,就不得不提以下这3种数据流:
- 输入信息会从 stdin 中读取(标准输入,通常是键盘或鼠标)。
- 输出信息会被输出到 stdout (标准输出,一个文本文件或者数据流)。
- 错误信息会被输出到 stderr。
了解了这些数据流的存在,在你使用 Shell 时,你就可以更好地控制数据的流向了。
在 Linux 系统中,标准输入,标准输出以及标准错误都作为文件存在。你可以在 /dev 目录下看到它们:
$ ls /dev/std* /dev/stderr /dev/stdin /dev/stdout
重定向输出
在 Linux 系统中,使用 > 字符表示重定向输出。例如,将 ls 命令的输出重定向到一个文件中:
$ ls > list.txt
执行以上命令后,屏幕上并不会显示 ls 命令的输出信息,因为输出信息已经被重定向至 list.txt 文件中了。
除此之外,重定向还有许多用途,它还可以用于复制文件的内容,而且不限于复制文本文件,二进制文件也可以复制:
$ cat image.png > picture.png
如果你想要将一个文件的内容复制到另一个文件的末尾,你只需将 > 字符换成 字符串即可,像这样:
$ cat lxlinux alvi
重定向输入
与重定向输出相反,重定向输入使用的是 < 字符。
输入重定向可以将输入信息重定向至命令中作为参数使用。该功能可能比较少用,但是,当命令需要一个参数列表时,而这些参数都存在一个文件中,然后你想快速地将它们从文件中复制粘贴到终端,这时这个功能就能派上用场了。
例如,package.list 里记录了你需要安装的包的列表,而你想要快速地安装所有的包,只需执行以下这一条命令,就能一次性安装 package.list 里的所有包:
$ sudo dnf install $(<package.list)
输入重定向的常见用法是 Here-document (简称 Here-doc) 以及 Here-string 。
Here-doc 将输入的文本块重定向至标准输入流,直至遇到特殊的文件结束标记符为止(文件结束标记符可以是任意的唯一的字符串,但大部分人都默认使用 EOF)。
你可以尝试在终端输入以下命令(直到第二个 EOF 字符串结束):
$ cat << EOF > alvin > lxlinux.net > EOF
预期的输出应该是这样的:
alvin
lxlinux.net
Here-doc 是 Bash 脚本编写者们将多行文本转储到文件或屏幕上的常用技巧。
Here-string 与 Here-doc 相似,但是它只有一个字符串,或者几个被引号括起来的字符串:
$ cat <<< alvin alvin $ cat <<< "alvin lxlinux.net" alvin lxlinux.net
重定向错误信息
错误信息默认会进入叫 stderr 的流,使用 2> 可以对其进行重定向。例如,将错误信息重定向到名为 output.log 的文件中:
$ ls /nope 2> output.log
重定向数据至 /dev/null
就像标准输入、标准输出以及标准错误一样,在 Linux 文件系统中,空,也存在一个文件与之对应,它叫做 null ,放在 /dev 目录下。为了方便读,人们经常省略斜杠,直接把他读作 dev null 。
/dev/null 并不保存数据,被写入 /dev/null 的数据最终都会丢失,就像被丢进虚空中一样。因此,你可以使用重定向将不需要的数据输送到 /dev/null 。例如,find 命令的输出往往很冗长,而且在搜索文件时还经常会报告权限冲突的错误,像这样:
$ find ~ -type f /home/seth/actual.file find: `/home/seth/foggy': Permission denied find: `/home/seth/groggy': Permission denied find: `/home/seth/soggy': Permission denied /home/seth/zzz.file
这时,你就可以将错误信息重定向到 /dev/null ,以过滤掉不必要的信息,像这样:
$ find ~ -type f 2> /dev/null /home/seth/actual.file /home/seth/zzz.file
善用重定向
在 Bash 中,重定向是转移数据的一种高效方法。你可能并不会总是使用重定向,但是学会如何使用重定向,在你需要的时候可以让你省掉许多不必要的复制粘贴操作,因此也节省了许多操作鼠标与键盘的时间。请不要执着于复制粘贴了,使用重定向可以提高你的工作效率,难道,它不香吗?
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]