永发信息网

查找list.TXT的文件

答案:1  悬赏:60  手机版
解决时间 2021-02-23 22:38
查找位于跟目录以及其子目录下的名为list.TXT的文件,并将查询结果存储到/tmp目录下的myfind文件中的unix指令是:find / -name( )
最佳答案
ls -l这个命令,将当前目录下的文件显示出来(类似于DOS下的dir命令)。然后用输出重定向操作符 > 来将输出重定向到list.txt文件中。这样,ls的输入就不再输出到屏幕,而是输出到list.txt文件中了。然后用cat list.txt命令查看list.txt文件的内容,得到如上输入。
虽然标准输出和标准报错都是输出到屏幕,但这是两种不同的输出,使用两个不同的流文件。重定向标准报错的时候,就不能用 > 这个操作符,而需要使用 2> 这个操作符。如
$ myprog >stdout.txt 2>stderr.txt
这样,就将标准输出重定向到了stdout.txt中,而将标准输入重定向到了stderr.txt中。
对于输入重定向和报错的重定向,还有一点需要注意:你将输出或者报错重定向到了一个文件,如果这个文件不存在,则建立这样一个文件。如果这个文件存在,则这个文件中的所有内容都将被清除,而以标准输入中的内容取而代之。如果你想将新的内容输入到文件尾,则需要用 >> 这个追加操作符。如上例中,
$ ls -l >> list.txt
则将标准输入的内容追加到了list.txt的文件尾。

同时,还有一个管道操作。管道操作的意思是,有一串命令,利用管道操作符 | ,可以将前一个命令的输出当做后一个命令的输入,以此类推。如:
$ ls /usr/bin | more
[
4odb
4rdf
4xslt
4xupdate
a2p
a2ps
ab
aclocal
……
这个命令的意思是,将/usr/bin下的文件及目录名输出,然后利用more将这个输出分屏显示。就好像将前一个命令的输出,装入了一个管子后传到了下一个命令当做输入来使用。
合理使用重定向及管道操作,可以使Linux命令的威力倍增。

Linux支持通配符。所谓通配符,是指 * 和 ? 这两个字符。* 可以匹配任意多个字符,而 ? 只能匹配单个字符。如: a* 可以代表 ab,abc,ac,acdef等等。而a?则只能代表ab,ac,ad……等等。
除了用*和?来匹配一个或者多个字符外,你也可以指定一个字符清单,用来匹配清单中出现的任意一个字符。字符清单要列在一对[]内,如:
tty?[1234],可以代表tty1,tty2,tty3,tty4这四个词。
tty?[ace],可以代表ttya,ttyc,ttye这三个词。
如果字符清单是单纯的连续的字母或者数字,还可以这样写:
tty?[1-4],与tty?[1234]同样。
tty?[a-e],与tty?[abcde]同样。
另外还有一种写法,即:指定字(不是字符)清单。字(word)清单要包含在一对{}中,用 , 分隔开,其用法举例如下:
$ mkdir /tmp/{bin,tmp,lst}
这个命令,在/tmp/下建立了bin,tmp,lst三个子目录。

除此之外,Linux的各种shell下还提供了丰富的命令操作功能 。下面简要介绍一下:
* 命令补全功能
命令补全功能是指,当你输入一个命令的一部分后,按下键,shell会尝试自动补全不完整的功能。如果你的输入太短,以至于 shell无法判定你要输入的命令是什么的时候,会蜂鸣一声以示提示。在这个时候,在某些shell如bash下,如果你再按一次< Tab>,shell则会将所有匹配你输入的命令列出以供你选择。类似地,当你使用一个文件名做为命令的参数的时候,shell也会尝试着去补全这个命令。如下例
$ ls
bin include lib list.txt okdata OkProg src test
$ ls t
输入到这个的时候,按下键。由于在当前目录下,只包含test一个以t开头的文件/目录,所以shell自动补全这个文件名,成了这样:
$ ls test/
* 命令历史记录
当你新开了一个shell,进行操作的时候,shell会将你的一部分操作记录下来。保存的操作数目是在$history这个系统变量中保存的。如$ history的值是1000,代表shell将会保存最近的1000次操作。你可以用history命令来查看历史操作。如:
$ history
……
53 22:59 cl
53 22:59 ls -l > list.txt
54 22:59 cat list.txt
……
59 23:10 ls /ur/bin | more
60 23:17 mkdir /tmp/{bin,tmp,lst}
……
上面表示的是输出的一部分。
使用历史命令记录,可以使你省下很多烦琐的输入。在shell提示符下按方向键的上下,就可以选择历史命令。当你输入命令的一部分后按Esc+P,就可以调出最近的一次与你的输入最匹配的操作。如:我现在输入h后按下Esc+P组合键,则显示history,按回车即可执行。
使用!则可调用第次操作。从上面history的输入可以知道第60次操作是mkdir /tmp{bin,tmp,lst},那么如果我输入!60后按回车,则直接再次执行这个操作。
使用!则可以调用与匹配的最近的一次操作。如我输入!ca,则会调用第54次操作的cat list.txt
使用!!可以重复上一次的操作。
此外,还可以对命令中的任何位置(不只局限于开始部分)出现的字符进行搜索。被搜索的字符串应该放在两个?中间。如:
$ !?dir?
会找到 mkdir /tmp/{bin,tmp,lst} 这条历史命令。注意:在这里,?不是通配符,而是一种叫做“正则表达式”的式子。如果第二个字符串后面没有东西,则可以省略。
同样,Linux的shell还允许你对历史命令中的一部分稍加修改后执行,修改用到的方法是:s/old/new/,将old换成new。我们要将mkdir /tmp/{bin,tmp,lst}中的bin改成my后执行,则可以这样:
$ !?kdir?:s/bin/my
实际上,这也是一种正则表达式。正则表达示是Linux下一个强大的工具,可以用来进行复杂的匹配,或者模糊查找,等等。关于正则表达式,我们会在以后涉及到。
当然,我只是为了举个例子,才写这样的命令的。对于简单的命令,这还不如直接写一遍来得迅速。另外,不像DOS只有一个command.com,Linux下有很多的shell,如tcsh,bash等等。在不同的shell中,这些操作方法会有稍许不同。
在Linux下,你还可以编辑shell脚本(类似于MS-DOS下的批处理命令,但功能更为强大)。也可以使用命令函数。这些内容我们暂且搁置。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
y'=e^ysinx的微分方程通解
为什么我们一般见到的楼梯都是逆时针向上修建
龙腾盛世广场这个地址在什么地方,我要处理点
geniusotisnevernightsleep什么意思
中华文化历来包含鼓励创新的丰富内涵,强调推
新白娘子传奇里的宝山哥石乃文演过什么电视剧
旅游市场细分的旅游市场细分的作用
我的野蛮女友插曲
友谊大街东22号街坊西南门地址在什么地方,想
8月22日是什么星座,星座查询
买车分期付款的利息是多少
2011年3月11日,日本发 生了9级大地震。地震
爱鸭鸭脖王地址在哪,我要去那里办事
艺佳教育地址有知道的么?有点事想过去
中国药妆哪个牌子好
推荐资讯
宋应星纪念馆什么时侯开门什么时候关门
盛辉机械设备有限公司地址在哪,我要去那里办
喜欢你嘴角的微笑,心疼你眼角的泪光。
杨氏炒货批发部地址有知道的么?有点事想过去
和女朋友约会,除了吃饭看电影,唱K还能干嘛
贵州联合钢集团聚鑫钢铁厂目前的价格
从襄阳到安康驾车一般要多久
木华楼金店地址在哪,我要去那里办事
在三角形ABC中,内角A,B,C的对边分别为a,b
蒜泥贝柱粉丝怎么做如何做好吃
《热》日记六百字
怡什么什么成语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?