, когда я использую это, чтобы посмотреть, чтобы увидеть, если есть конкретный файл в каталоге, ls
конвейера к grep
не работаетLs конвейеру Grep против LS файла Glob
[email protected]:/home/log$ ls -ltr | grep *FOO-VOL2*
Но когда я использую ls
с file 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 to pipe.
The * very * different in the corner case, где имя файла, соответствующее '* FOO-VOL2 *', содержит новую строку; вывод 'ls' будет охватывать несколько строк, а' grep' (при правильном регулярном выражении) отобразит только строку, содержащую 'FOO-VOL2'. – chepner