Для подавления вывода ошибок в Bash
, добавьте 2> / dev / null
до конца вашей команды. Это перенаправляет filehandle 2 (STDERR) в / dev / null
. В других снарядах есть аналогичные конструкции, хотя конкретная конструкция может немного отличаться.
Перенаправление сообщение об ошибке (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
Ваш вопрос не понятен. Наиболее разумная вещь, которую нужно сделать, было бы не запущено 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
Добавьте это в ~ / .bashrc:
alias cp='cp 2> /dev/null'
тогда:
source ~/.bashrc
вы можете использовать либо:
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