Как я подавляю сообщения об ошибках от CP?

Это походит на идеальное использование для конфетки-downloadonly.

  1. Выполненный yum install yum-downloadonly
  2. yum update --downloadonly --downloaddir=/path/to/dir

NixCraft имеет превосходную рецензию на этом инструменте.

13
27.04.2016, 20:55
5 ответов

Для подавления вывода ошибок в Bash , добавьте 2> / dev / null до конца вашей команды. Это перенаправляет filehandle 2 (STDERR) в / dev / null . В других снарядах есть аналогичные конструкции, хотя конкретная конструкция может немного отличаться.

38
27.01.2020, 19:52

Перенаправление сообщение об ошибке (STDERR) к /dev/null:

root@ubuntu:~$ cp /srv/ftp/201*/wha*/*.jj ~/. 2>/dev/null

Пример:

$ cp /srv/ftp/201*/wha*/*.jj ~/.  ##Error message gets printed
cp: cannot stat ‘/srv/ftp/201*/wha*/*.jj’: No such file or directory

$ cp /srv/ftp/201*/wha*/*.jj ~/. 2>/dev/null  ##No error message gets printed
8
27.01.2020, 19:52

Ваш вопрос не понятен. Наиболее разумная вещь, которую нужно сделать, было бы не запущено CP вообще, когда подстановочный знак не соответствует ни одному файлу, а не запуска CP и скрыть сообщение об ошибке.

Для этого, если оболочка - это Bash, установите вариант Nullglob , чтобы рисунок подстановочного знака расширяется ни к чему, если она не соответствует никаких файлах. Затем проверьте, распространяется ли шаблон к чему-либо, и не звонит CP в этом случае.

#!/bin/bash
shopt -s nullglob
files=(/srv/ftp/201*/wha*/*.jj)
if [[ ${#files[@]} -ne 0 ]]; then
  cp "${files[@]}" ~
fi

Просто Sh, проверьте, осталось ли шаблон без изменений, указывая на несуществующий файл.

set -- /srv/ftp/201*/wha*/*.jj
if ! [ -e "$1" ] && ! [ -L "$1" ]; then
  cp "$@" ~
fi
4
27.01.2020, 19:52

Добавьте это в ~ / .bashrc:

alias cp='cp 2> /dev/null'

тогда:

source ~/.bashrc
0
27.01.2020, 19:52

вы можете использовать либо:
1 вариант: 2> / dev / null .
2 вариант: 2> & 1
Кроме того, вы можете использовать это в конце вашей команды, он подавит сообщения об ошибках:

Пример здесь -

$cp nofile.txt b.txt > log.txt 2>/dev/null

здесь вы можете 'не получает никакой информации о сообщении об ошибке. Ex2:

$cp nofile.txt b.txt > log.txt 2>&1

здесь вы можете получить некоторую информацию из следующего файла журнала:

$ cat log.txt
cp: cannot stat `nofile.txt': No such file or directory
1
20.08.2021, 12:36

Теги

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