объяснение команды сценария Linux

Когда я читаю скрипт makefile, я встречаюсь со следующей командой linux script:

mv obj/*.o .  2>/dev/null 

Что означает эта команда? Я понимаю, что mv obj/*.o . означает, что все файлы с суффиксом o в папке obj будут перемещены в текущую папку. Что значит 2>? Когда они объединены вместе, какова цель? Спасибо!

0
задан 3 May 2013 в 11:47

2 ответа

Вы смотрите перенаправление вывода (Bash) . 2 означает «stderr», вывод ошибки. Перенаправляя его на /dev/null, вы отбрасываете его в забвение. Обычный вывод, 'stdout' или 1 все еще отображается (в вашем терминале по умолчанию), однако.

По сути, это просто вывод ошибки из-за глушения команды mv.

Фрагмент приведенной выше ссылки объясняет это более общим образом:

COMMAND_OUTPUT >
  # Redirect stdout to a file.
  # Creates the file if not present, otherwise overwrites it.

  ls -lR > dir-tree.list
  # Creates a file containing a listing of the directory tree.
[..]
1>filename
  # Redirect stdout to file "filename."
1>>filename
  # Redirect and append stdout to file "filename."
2>filename
  # Redirect stderr to file "filename."
2>>filename
  # Redirect and append stderr to file "filename."
&>filename
  # Redirect both stdout and stderr to file "filename."
0
ответ дан 3 May 2013 в 11:47

Кстати, иногда вы можете запретить отображение на экране, но можете записать его в файл. Если это так, вы можете сделать что-то вроде этого:

mv obj/*.o . > move.log 2>&1
0
ответ дан 3 May 2013 в 11:47

Другие вопросы по тегам:

Похожие вопросы: