Что DUP мог означать при использовании ping?

Zsh
mv Foo/*(DN) Bar/

или

setopt -s glob_dots
mv Foo/*(N) Bar/

(Не учтите (N) если Вы знаете, что каталог не пуст.)

Bash

shopt -s dotglob nullglob
mv Foo/* Bar/

Ksh93

Если Вы знаете, что каталог не пуст:

FIGNORE='.?(.)'
mv Foo/* Bar/

Стандарт (POSIX) sh

for x in Foo/* Foo/.[!.]* Foo/..?*; do
  if [ -e "$x" ]; then mv -- "$x" Bar/; fi
done

Если Вы готовы позволить mv управляйте возвращают ошибочное состояние даже при том, что оно успешно выполнилось, это намного более просто:

mv Foo/* Foo/.[!.]* Foo/..?* Bar/

GNU находит и GNU mv

find Foo/ -mindepth 1 -maxdepth 1 -exec mv -t Bar/ -- {} +

Стандартная находка

Если Вы не возражаете изменяться на исходный каталог:

cd Foo/ &&
find . -name . -o -exec sh -c 'mv -- "$@" "$0"' ../Bar/ {} + -type d -prune

Вот больше детали об управлении, подобраны ли точечные файлы в ударе, ksh93 и zsh.

Bash

Установите dotglob опция.

$ echo *
none zero
$ shopt -s dotglob
$ echo *
..two .one none zero

Существует также более гибкое GLOBIGNORE переменная, которую можно установить на разделенный от двоеточия список подстановочных шаблонов для игнорирования. Если сброшено (настройка по умолчанию), оболочка ведет себя, как будто значение было пусто если dotglob установлен, и как будто значение было .* если опция сброшена. Посмотрите Расширение Имени файла в руководстве. Распространяющиеся каталоги . и .. всегда опускаются, если . подобран явно шаблоном.

$ GLOBIGNORE='n*'
$ echo *
..two .one zero
$ echo .*
..two .one
$ unset GLOBIGNORE
$ echo .*
. .. ..two .one
$ GLOBIGNORE=.:..
$ echo .*
..two .one

Ksh93

Установите FIGNORE переменная. Если сброшено (настройка по умолчанию), оболочка ведет себя, как будто значение было .*. Проигнорировать . и .., они должны быть подобраны явно (руководство в ksh 93 + 31.01.2008 состояние это . и .. всегда игнорируются, но это правильно не описывает фактическое поведение).

$ echo *
none zero
$ FIGNORE='@(.|..)'
$ echo *
..two .one none zero
$ FIGNORE='n*'
$ echo *
. .. ..two .one zero

Можно включать точечные файлы в шаблон путем соответствия им явно.

$ unset FIGNORE
$ echo @(*|.[^.]*|..?*)
..two .one none zero

Чтобы иметь расширение выходят пустые, если каталог пуст, используйте N опция сопоставления с образцом: ~(N)@(*|.[^.]*|..?*) или ~(N:*|.[^.]*|..?*).

Zsh

Установите dot_glob опция.

% echo *
none zero
% setopt dot_glob
% echo *
..two .one none zero

. и .. никогда не подбираются, даже если шаблон соответствует продвижению . явно.

% echo .*
..two .one

Можно включать точечные файлы в определенный шаблон с D спецификатор шарика.

% echo *(D)
..two .one none zero

Добавьте N спецификатор шарика, чтобы заставить расширение выйти пустое в пустом каталоге: *(DN).


Примечание: можно получить результаты расширения имени файла в различных заказах (например, none сопровождаемый .one сопровождаемый ..two) на основе Ваших настроек LC_COLLATE, LC_ALL, и LANG переменные.

58
16.05.2011, 15:23
4 ответа

DUP означает дублирующийся пакет.

От man ping:

Дубликат и поврежденные пакеты

ping сообщит о дубликате и поврежденных пакетах. Дублирующиеся пакеты никогда не должны происходить и, казаться, вызываются несоответствующими повторными передачами канального уровня. Дубликаты могут произойти во многих ситуациях и редко являются (если когда-либо) хорошим знаком, хотя присутствие низких уровней дубликатов не может всегда быть причиной для предупреждения.

Поврежденные пакеты являются очевидно серьезной причиной для предупреждения и часто указывают на поврежденные аппаратные средства где-нибудь в пути пакета ping (в сети или в хостах).

Существуют различные причины этого, Вы получали свой сетевой трафик с интерфейсом в неразборчивом режиме? Иногда это - причина дублированных пакетов.

42
27.01.2020, 19:33
  • 1
    , у меня есть интерфейс в неразборчивом режиме. Я receiev DUP пакеты в ping. Таким образом, что происходит в этом случае?. У меня есть программа неструктурированного сокета, которая отправляет полученные пакеты в tun/tap интерфейс. Ping сделан через tap интерфейс, который будет отправлен через raw socket через интерфейс, который находится в неразборчивом режиме. Если тот интерфейс не находится в неразборчивом режиме, я не могу получить ответ ping. –  Ramana Reddy 20.06.2017, 15:44

Это означает, что ответный пакет является дубликатом. Ответы ICMP содержат порядковый номер. Иногда Вы будете на самом деле получать больше чем один ответ с тем же порядковым номером. Это обычно вызывается дефектными сетями. Беспроводные сети часто полагаются на повторную отправку пакетов, если они не получают надлежащую проверку, и если первый, на самом деле обработанный, снова посылание будет дубликатом. В нормальном использовании удалены дубликаты. В ping отвечает, что они отмечены, потому что они говорят Вам что-то о том, как сеть функционирует. Например, если Вы получаете дубликаты 100%, некоторый механизм обнаружения неисправностей, вероятно, повреждается.

27
27.01.2020, 19:33

Проверьте, не использует ли пара машин один и тот же IP-адрес. Это был мой случай для этого сообщения.

Я столкнулся с этим, когда клонировал виртуальную машину и запускал обе одновременно. Сетевая конфигурация была в режиме моста, а IP-адрес был привязан к Mac. Итак, когда вторая машина начала использовать сеть, у меня возникли проблемы с ssh:

write: Connection reset by peer
ssh: connect to host 172.16.13.105 port 22: Connection refused
ssh_exchange_identification: read: Connection reset by peer

И ошибка ping при ping.

5
27.01.2020, 19:33

У вас одинаковые MAC-адреса в вашей таблице MAC-адресов, вы должны обратиться к своим таблицам ARP на всех ваших машинах GNU/Linux, чтобы выполнить следующие задачи:

  1. ifconfig | grep "эфир"
  2. Скопируйте и вставьте все MAC-адреса, которые вы видели во временном блокноте
  3. проверить наличие дубликатов MAC-адресов. Если существуют дубликаты, сделайте их уникальными.
-1
27.01.2020, 19:33

Теги

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