Вы также можете использовать tee для отправки вывода в файл:
command | tee ~/outputfile.txt
Небольшая модификация также будет захватывать stderr:
command 2>&1 | tee ~/outputfile.txt
или немного короче и менее сложно:
command |& tee ~/outputfile.txt
tee полезна, если вы хотите иметь возможность захвата вывода команды, а также просмотр ее вживую.
Это не параметр, а набор букв (или «shell glob»). То же самое:
rm -rf /tmp/hello.py[co]
совпадает с
rm -rf /tmp/hello.pyc
rm -rf /tmp/hello.pyo
Аналогично ...
rm -rf /tmp/hello.py[c-o]
удалит что-либо из /tmp/hello.pyc до и включительно /tmp/hello.pyo после заказа ASCII.
rm -rf /tmp/hello.py[ab][cd]
удалит ...
rm -rf /tmp/hello.pyac
rm -rf /tmp/hello.pyad
rm -rf /tmp/hello.pybc
rm -rf /tmp/hello.pybd
say, у меня есть файлы foo.js и foo.coffee, можем ли мы сделать что-то вроде rm -rf /tmp/foo.coffe[co], чтобы удалить /tmp/foo.js. Вы можете сделать довольно причудливые методы, но для этих двух файлов я бы просто удалил их по 1 команде для каждого. В другом примере, как можно ближе к этим двум файлам ...
rm /tmp/foo.[cj]*
удалит такие файлы ...
rm /tmp/foo.c*
rm /tmp/foo.j*
, поэтому он будет включать гораздо больше, чем просто эти 2 файла.
Это оболочка glob, похожая на подстановочные знаки * и ? ... в bash, шаблон имени файла *.[co] соответствует всем именам файлов, которые заканчиваются на .c или .o.
[d1 ] Разница с *.[co] по сравнению с *.c *.o или *.{c,o} заключается в том, что два последних шаблона будут расширяться до манекена *.o, если в каталоге нет файлов .o, а версия *.[co] - нет.Shell globs полезны для выполнения операций с файлами с учетом нечувствительности. Например, если у вас есть куча файлов с именами файлов, которые заканчиваются на jpg, JPG, Jpg, JPg и т. Д. ... и вы хотите удалить все из них, вы можете сделать:
rm *.[Jj][Pp][Gg]