Ubuntu Kylin技术论坛

 找回密码
查看: 2818|回复: 0

命令行是你的至交好友 -Part 4

[复制链接]
  • TA的每日心情
    擦汗
    2015-6-27 13:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2013-3-13 10:10:27 | 显示全部楼层 |阅读模式
    本帖最后由 liuxing 于 2013-3-13 10:15 编辑

                                    输入/输出重定向我们可以综合我们的知识,以不同的方向重定向标准错误(stderr),标准输入(stdin)和标准输出(stdout)。实际上,以下的命令功能相同:
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al > ./SecondDir/ThirdFile
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1> ./SecondDir/ThirdFile

    在第二个命令中,在重定向之前我们指定标准输出的来源。请注意1与>之间没有空格。实际上,如果两者之间有空格,则1会作为ls命令的一个参数,并且>会自动重定向标准输出。以下两个表达功能相同,但和上面的那个功能不同。
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1 > ./SecondDir/ThirdFile
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al 1 1> ./SecondDir/ThirdFile

    当然,这些结果会出错:"ls:不能访问1:没有那个文件或目录” ——除非你真的有一个名字为1的目录。这会让我们惊讶下一步我们得到的:重定向错误。
    aba@csaba-pc ~/tmp/NetTuts $ ls -al inexistenFilder > ./SecondDir/ThirdFile
    ls: cannot access inexistenFilder: No such file or directory
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al inexistenFilder 2> ./SecondDir/ThirdFile

    如你所见,第一个命令在控制台输出标准输出并重定向标准输出到一个文件。第一个命令的结果是一个空文件和屏幕上的一条信息。然而,第二条命令重定向错误到我们的文件。其结果是如果在标准输出上有任何输出,则它们会显示在屏幕上,并且错误信息会输入到这个文件。


    一个实际的I/0重导例子   当你需要在命令行寻找一些文件时,你基本上只有两个选择。第一个就是选择用本地命令。这些命令常常是伴随着安装各种Linux版本而已经安装好的,当然不是每一个版本都安装了。更新文件数据库命令索引你的文件和定位,然后使用那个数据库去发现你的文件。实际上他不是做一个实时的搜索,它只是简单的在数据库做索引。这就是为什么这个应用程序常常定期的做每日更新文件数据库。

    我们来用这个命令演示一个实时搜索,它比本地命令搜索的更精确,但是很显然更慢一些。现在让我们用这个命令来演示一段:
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al
    total 16
    drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 .
    drwx------ 7 csaba csaba 4096 Feb 19 21:09 ..
    drwxr-xr-x 2 csaba csaba 4096 Feb 19 21:09 AnotherDir
    drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 SecondDir
    csaba@csaba-pc ~/tmp/NetTuts $ ls -al ./SecondDir/
    total 16
    drwxr-xr-x 2 csaba csaba 4096 Feb 24 00:06 .
    drwxr-xr-x 4 csaba csaba 4096 Feb 19 21:09 ..
    -rw-r--r-- 1 csaba csaba   12 Feb 19 21:19 aFile
    -rw-r--r-- 1 csaba csaba    0 Feb 19 21:09 AnotherFile
    -rw-r--r-- 1 csaba csaba   61 Feb 24 00:23 ThirdFile
    csaba@csaba-pc ~/tmp/NetTuts $ find . -name ThirdFile
    ./SecondDir/ThirdFile




    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|Ubuntu Kylin    

    GMT+8, 2019-11-21 03:08 , Processed in 0.011950 second(s), 10 queries , File On.

    Copyright ©2013-2019 Ubuntu Kylin. All Rights Reserved .

    ICP No. 15002470-2 Tianjin

    快速回复 返回顶部 返回列表