Мы делаем семинары для стажировок, где мы объясняем Bash. Одной темой является перенаправление, потому что это довольно важно.
До сих пор мы объяснили >
и 2>
независимый друг от друга. Наши примеры
echo Hello world
echo Hello world > file.txt
let x=1/0
let x=1/0 2> file2.txt
Для программистов с пониманием понятия stdout
и strerr
, это не проблема.
Однако для интернов, единственный эффект в обоих случаях: вывод не стал и был перенаправлен в файл.
То, что я ищу, является командой, которая производит обоих, регулярный вывод (stdout
) и вывод ошибок (stderr
). Тем путем мы можем использовать >
перенаправить только часть вывода, 2>
перенаправить другую часть или обоих для получения 2 файлов.
Команда должна быть довольно простой и не включить слишком много подготовки. Чем больше подготовки, тем более вероятно, что они получат что-то не так.
Я использовал бы что-то как
ls file not-a-file
где file
существует в текущем каталоге и not-a-file
не делает. Очевидно, Вы могли занять место ls
для любой другой простой команды, которая берет аргументы имени файла.