【unix学习】重定向、管道、链接文件

来源:互联网 发布:淘宝运营新手好学吗 编辑:程序博客网 时间:2024/06/06 16:38

重定向

不在显示屏打印命令的错误信息,当找不到文件的时候,屏蔽了错误信息。
2和>之间不要有空格

[s14516@gdufs]$find / -name 'stdio.h' 2> /dev/null

整合文件内容

f1和f2的文件内容合起来保存在一个文件

cat f1 f2 > f

标准输入输出 0 1 2

0 是一个文件描述符,表示标准输入(stdin)
1 是一个文件描述符,表示标准输出(stdout)
2 是一个文件描述符,表示标准错误(stderr)

1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
首先让描述符1指向输出目标, 然后2复制1, 当然也指向同一个输出目标, 这样所有的输出都到了同一个目标
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中


Redirecting stdin and stdout in One Command
Command < input-file > out-file
Redirecting stdout and stderr in One Command
Command > out-file 2>err-file
Command > out-file 2>&1
Command >& out-file


管道

竖线 | 前面的命令结果作为后面的输入
组合一些简单的命令
[s14516@gdufs]$who | wc -l
翻页查看
[s14516@gdufs]$ls -l | more
统计18点前的用户个数
[s14516@gdufs]$who | grep '^s14' | awk '$4~/18/' | wc -l
保存中间结果
[s14516@gdufs]$who | grep '^s14' | tee result | awk '$4~/18/' | wc -l


链接文件

硬链接

[s14516@gdufs]$ln /tmp/chapter3 chapter3.hard
在文件索引上记录的id是指向同一个文件的索引节点,公用一个存储空间

缺点:
不能跨系统建立链接
也不能创建文件夹的链接
这就是硬链接

软链接

[s14516@gdufs]$ln -s /tmp/chapter3 chapter3.soft
创建文件索引分配一个新的索引节点
分配一个硬盘的存储空间,这个存储空间存储的是链接文件的内容

缺点:
当原文件删除了之后,链接文件就不能使用了。
但是硬链接是可以继续使用的。
但是可以跨系统,也可以针对目录建立链接

[s14516@gdufs]$ls -l chapter3.softlrwxrwxrwx 1 s14516 stu 13 2017-10-18 20:29 chapter3.soft -> /tmp/chapter3

文件类型为l,需要单独维护这个文件类型,也是缺点之一。
硬链接的文件类型是普通文件

原创粉丝点击