,当我使用它来看看是否有目录中的特定文件,ls
管道输送到grep
不起作用LS管到grep VS LS文件名匹配
[email protected]:/home/log$ ls -ltr | grep *FOO-VOL2*
但是当我使用ls
与文件globbing我得到的结果:
[email protected]:/home/log$ ls -ltr *FOO-VOL2*
-rw-rw-rw- 1 casper casper 11489 Sep 24 18:00 FOO-VOL2.20140924.log.gz
-rw-rw-rw- 1 casper casper 11885 Sep 25 18:00 FOO-VOL2.20140925.log.gz
-rw-rw-rw- 1 casper casper 0 Sep 26 08:00 FOO-VOL2.sessiondump.log
-rw-rw-rw- 1 casper casper 60906 Sep 26 18:00 FOO-VOL2.20140926.log
-rw-rw-rw- 1 casper casper 58503 Sep 29 09:00 FOO-VOL2.20140929.log
-rw-rw-rw- 1 casper casper 8259128 Sep 29 09:00 FOO-VOL2.sys.log
有什么区别 - grep管道应该工作。
在与* FOO-VOL2 *'匹配的文件名包含换行符的转角情况下,*非常*不同; 'ls'的输出将跨越多行,'grep'(假设正确的正则表达式)将只显示包含'FOO-VOL2'的行。 – chepner 2014-10-02 18:01:43