I/O重定向 1、文件描述符(File descriptor) 用于表述指向文件的引用的一种抽象概念。文件描述符是一个索引值,当进程打开或者创建一个文件时,内核向该进程返回一个文件描述 符。文件描述符通常表现为一个非负整数。 进入/proc目录,cd$$,进入当前进程的目录内,进入fd目录。exec 8 <> /root/a.txt,exec 8>&- 2、标准文件描述符 0 标准输入 STDIN(standard input) 默认接受键盘的输入 1 标准输出 STDOUT(standard output) 默认输出到终端窗口 2 标准错误 STDERR(standard error output) 默认输出到终端窗口 3、I/O重定向 将标准的输入输出改变方向。 4、标准输出、标准错误输出重定向 1、ls /etc/issue 1> input.log # 将标准输出重定向到input.log文件 2、ls /etc/abc 2> error.log # 将标准错误输出重定向到error.log文件 3、ls /etc/issue /etc/abc {[&>][>&][|&]} errorinput.log # 将标准输出和标准错误输出重定向到errorinput.log文件 ls /etc/issue /etc/abc > errorinput.log 2>&1 理解:&符号表示标准输出和标准错误输出 4、ls /etc/issue /etc/abc 1> input.log 2> errorinput.log # 将标准输出和标准错误输出分别定向到不同的文件 5、ls /etc/issue 1>&2 # 将标准输出重定向到标准错误输出 6、ls /etc/issue 2>&1 # 将标准错误输出重定向到标准输出 7、将两条命令的标准输出重定向到文件 (ls;hostname) > 1.txt 6、cat重定向 << 终止符 的作用是把键盘的多行重定向到标准输入 可以重定向到已有的文件中,也可以重定向到之前不存在,新的文件中 1、单行重定向:cat file1 2、多行重定向:cat > file2 << EOF > > >EOF 3、cat > file 7、标准错误输出不能通过管道送给第二个命令。如果要标准错误输出通过管道: ls /etc/issue /etc/abc 2>&1 | tr 'a-z' 'A-Z' 8、'-'符号 例如在打包文件时,不是将数据到一个打包文件中,而是打包的数据传送到标准输出中,然后经由管道送给下一个命令。 tar -cvf - /etc | tar -xvf - 理解:后面的'-'表示取前一个命令的标准输出 9、tee命令 选项: -a # 将输出定向到文件时,不覆盖之前文件的内容 既可以将通过管道的标准输出输出到屏幕,同时又可以将输出保存到文件中。 10、文件内容覆盖 set -C # 进制将内容覆盖 >|file # 强行覆盖 set +C # 开启覆盖 11、重定向软链接 重定向内容到软链接,其源文件会发生改变。