软硬链接,重定向
1.软硬连接
1.1 软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。
软链接文件只是其源文件的一个标记,当删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但却不能查看软链接文件的内容了。
来自--https://baike.baidu.com/item/%E8%BD%AF%E9%93%BE%E6%8E%A5/7177481
1.1.1 创建方式 ln -s source destination 软链接的相对路径不是相对当前目录,而是软连接本身的相对路径 如下:
我要将/date/linksoft 软链接到root下,对的代码这样(我当前在data目录):ln -s ../data/linksoft ../root 这个相对路径是相对root来讲的
错的-->>ln -s linksoft /root/ 指向本身了
lrwxrwxrwx. 1 root root 8 Sep 26 09:40 linksoft -> linksoft
1.2 一个文件有几个文件名(用ln命令实现多个文件名),我们就说该文件的链接数为几。由定义可知,此链接数可以是1, 这表明该文件只有一个文件名。
总之,硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
1.2.2 创建方式 ln source destination
1.3 软硬链接区别
1.硬链接增加链接号,软连接不加
2.硬链接不能链接目录,软连接可以链接目录
3.硬链接不能跨分区或者设备,软连接可以跨分区
4.硬链接是文件类型不变,软连接的文件类型变为 l
5.硬链接被删除减少链接号,软链接被删不减
6.软链接删除时,若软链接为目录,则删除的软链接不能加 ‘ / ’,否则删除的是软链接,链向文件当中的内容
7.硬链接 inode号相同,软链接不同
8.本质上,硬链接是同一个文件,起了不同的名字,而软链接则不是同一个文件
查看硬链接文件 find /data inum 1135 -----找/data下inode 为1135的文件
2.重定向
标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(STDOUT)-1 默认输出到终端窗口
标准错误(STDERR)-2 默认输出到终端窗口
I/O重定向:改变默认位置
STDOUT和STDERR可以被重定向到文件
命令 操作符号 文件名
支持的操作符号包括:
> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
w.txt 文件存在,l.txt 不存在的文件 把标准正确输入到f3.txt 把标准错误输入到&1 而&1所带表的是f3.txt 这个文件
cat w.txt l.txt 1>f3.txt 2>&1
下面代码效果和上面一样,仔细看看书写哪个地方不一样
cat w.txt l.txt 2>f3.txt 1>&2
&> 把所有输出重定向到文件
[root@CentOS-10-64-2019-0921 data]# cat database /etc/shadow &> allout.txt
> 文件内容会被覆盖
set –C 禁止将内容覆盖已有文件,但可追加
>| file 强制覆盖
[root@CentOS-10-64-2019-0921 data]# set -C [root@CentOS-10-64-2019-0921 data]# echo 'hello world' > allout.txt bash: allout.txt: cannot overwrite existing file [root@CentOS-10-64-2019-0921 data]# echo 'hello world' >| allout.txt [root@CentOS-10-64-2019-0921 data]# cat allout.txt hello world [root@CentOS-10-64-2019-0921 data]#
set +C 允许覆盖
[root@CentOS-10-64-2019-0921 data]# set +C [root@CentOS-10-64-2019-0921 data]# echo 'hello CHIAN' > allout.txt [root@CentOS-10-64-2019-0921 data]# cat allout.txt hello CHIAN [root@CentOS-10-64-2019-0921 data]#
>> 原有内容基础上,追加内容
[root@CentOS-10-64-2019-0921 data]# echo 'cnblogs.com/dreamfreedom' >> allout.txt [root@CentOS-10-64-2019-0921 data]# cat allout.txt hello CHIAN cnblogs.com/dreamfreedom [root@CentOS-10-64-2019-0921 data]#