• shell输出输入流常用符号解释


    >> 追加

    > 覆盖

    >& 把前面的保存位置设置成后面的保存位置

    P.S.:当然还有反的<< < <&意思就是方向不一样啦、往后追加变成往前追加、这就不重复写了

    0 标准输入

    1 标准输出

    2 标准错误

    例子:

    ls /usr/tmp 2> err.file

    把命令所产生的错误写入到err.file文件中、如果不存在则创建、如果存在则覆盖

    ls /usr/tmp &> output.file

    把错误和输出信息都写入到err.file文件中、如果不存在则创建、如果存在则覆盖

    command 2>&1

    把标准错误信息输出到标准输出的同一位置上、commadn代表任何命令、这段话其实是废话、加上去和直接运行command无区别、因为标准输出的位置就是输出在屏幕上、标准错误信息把位置输出标准输出的位置上、也就是屏幕上、等于没做过任何改变、因为标准错误和标准输出信息本来就是一样输出在屏幕上、不然莪们还怎么操作linux啊、囧

    command >output_file 2>&1

    这个命令就开始有点意思了、command同样代表任何命令、迩可以是ls显示目录、也可以是lsdflsl这样的错误命令、当然、迩输入正确的命令得到的将会是标准输出信息、输入错误的命令得到的就是标准错误的信息、好吧、这个命令的前半部分意思就是把命令的结果输入到output_file这个文件中、如果没有就创建、存在就覆盖、当然这个命令的结果可能是正确的命令也可能是错误的、但有一点是不变的、就是如果是标准输出信息就一定会把信息放进output_file文件中、所以当迩输入ls这样的正确命令当然是把标准输出的命令写进去output_file啦、如果迩输入的是lsdfsf这样错误的命令标准输出的命令当然是不会在output_file写上任何信息啦、但由于有后面的那句、2>&1、意思就是标准错误信息会同样往标准输出信息同样的位置写入、所以就算标准输出没有任何信息写入、发生错误时标准错误还是会往output_file写上任何错误信息、所以这条命令和ll &>output.file意思其实是一样的、


  • 相关阅读:
    hook declined to update refs/heads/dev
    关于OC中的几种延迟执行方式
    .gitignore中添加的某个忽略文件并不生效
    ios实现fastlane自动化打包
    iOS根据图片url获取尺寸
    iOS保存图片到相册崩溃
    你真的会java吗
    安卓沉浸式状态栏
    安卓接入融云IM连接不上??
    springboot无法访问静态资源
  • 原文地址:https://www.cnblogs.com/klobohyz/p/2307244.html
Copyright © 2020-2023  润新知