удалите файлы, имеющие определенный шаблон на их имена

В bash различные команды имеют различные понятия слов. C-w убивает до предыдущего пробела, но большинство других команд, включая M-t , используют разделенные пунктуацией слова.

Когда курсор находится между первым и вторым аргументами, C-w C-e SPC C-y транспонирует эти два слова.

Если вы хотите связать ключ с переносом слов, разделенных пробелом, это сложнее. См. запутанное поведение ключей в стиле emacs в bash . Вот какой-то минимально проверенный код.

transpose_whitespace_words () {
  local prefix=${READLINE_LINE:0:$READLINE_POINT} suffix=${READLINE_LINE:$READLINE_POINT}
  if [[ $suffix =~ ^[^[:space:]] ]] && [[ $prefix =~ [^[:space:]]+$ ]]; then
    prefix=${prefix%${BASH_REMATCH[0]}}
    suffix=${BASH_REMATCH[0]}${suffix}
  fi
  if [[ $suffix =~ ^[[:space:]]+ ]]; then
    prefix=${prefix}${BASH_REMATCH[0]}
    suffix=${suffix#${BASH_REMATCH[0]}}
  fi
  if [[ $prefix =~ ([^[:space:]]+)([[:space:]]+)$ ]]; then
    local word1=${BASH_REMATCH[1]} space=${BASH_REMATCH[2]}
    prefix=${prefix%${BASH_REMATCH[0]}}
    if [[ $suffix =~ [^[:space:]]+ ]]; then
      suffix=${suffix#${BASH_REMATCH[0]}}
      READLINE_LINE=${prefix}${BASH_REMATCH[0]}$space$word1$suffix
      READLINE_POINT=$((${#READLINE_LINE} - ${#suffix}))
    fi
  fi
}
bind -x '"\e\C-t": transpose_whitespace_words'

Это все проще в zsh...

-121--161414-

Большинство утилит POSIX указывают, что -- можно использовать для завершения аргументов параметра:

cp -- '-file 1' '-file 2'

Можно также ссылаться на текущий каталог с помощью . жесткая ссылка на текущий каталог:

cp './-file 1' './-file 2'

-121--202675-

RPM для RHEL [6 | 7] и братья и сестры (т.е. CentOS et al.) и доступны через yum в большинстве репозиториев.

Обратите внимание, что данные RPM адресуют часть уязвимостей «POODLE» в соответствии с:

  • CVE-2014-3567,
  • CVE-2014-3566 и
  • CVE-2014-3513

СМ.: cert.gov

Обновление безопасности не решает некоторые конкретные проблемы с SSLv3, поэтому серверы, которые обновляются, должны устранить любую возможность подключения клиентов с использованием этого протокола и, в частности, методов CBC.

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

NGINX/TENGINE:

  • add/replace ssl _ protocols TLSv1 TLSv1.1 TLSv1.2; в http config section и
  • убедитесь, что директива «ssl _ protocols» не перегружен ни в одном разделе сервера.

Если вы найдете какие-либо серверные директивы, просто удалите их и дайте «HTTP» управлять... как и должно.

APACHE:

  • add/replace SSLProtocol All -SSLv2 -SSLv3 в разделе глобальной конфигурации SSL и
  • как и в случае Nginx, проверьте свои хосты.

Как и в предыдущем OpenSSL snafus, вместо выдачи новых номеров RPM, соответствующих обновленному номеру версии OpenSSL (1,0 .1j), .rpm имеет исправление, перенесенное в последнюю часть .rpm дистрибутива; который равен 1,0 .1e (для distros на основе RHEL) и полностью настроен - на данный момент - как 1,0 .1e-30. [переменная по конкретной версии машины] .

Итак, в качестве примера можно привести CentOS 6 64-разрядную версию .rpm - openssl-1.0.1e-30.el6 _ 5,2 .x86 _ 64 .rpm .

Как и при любом обновлении OpenSSL, все, что зависит от OpenSSL, например веб-серверы, VPN и т.п., должно быть перезапущено на сервере, прежде чем обновление вступит в силу.

0
13.12.2014, 23:51
3 ответа

Если в текущем каталоге имеется два zip-файла a.zip и b.zip , то

$ cp *.zip destination/

расширяется до

$ cp a.zip b.zip destination/

Семантика для cp состоит в копировании как a.zip , так и b.zip в место назначения.

Если ввести

$ cp \*.zip destination/

, он просто "расширяется" до

$ cp '*.zip' destination/

, т. е. он попытается скопировать один файл с именем "* .zip" в место назначения, что не является желаемым.

С другой стороны, если ввести

$ unzip *.zip -d destination/

, он снова расширится до

$ unzip a.zip b.zip -d destination/

Семантика для unzip заключается в том, чтобы найти файл с именем "b.zip" в архиве "a.zip", что опять не то, что вы хотите.

При вводе

$ unzip \*.zip -d destination/

команда unzip не просто пытается распаковать файл с именем * .zip , но распаковывает все файлы, оканчивающиеся на .zip .

Разница в том, что обе команды интерпретируют свои аргументы по-разному.

-121--70750-

Рекурсивно:

find . -type f -name '[0-9][0-9].*' -delete

требуется поиск GNU, или:

find . -type f -name '[0-9][0-9].*' -exec rm {} \;
-121--198577-
rm [0-9][0-9].*

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

Если вы хотите сделать это рекурсивно, найти , вероятно, ваша лучшая ставка.

6
28.01.2020, 02:13

Рекурсивно:

find . -type f -name '[0-9][0-9].*' -delete

Требовать GNU найти, или:

find . -type f -name '[0-9][0-9].*' -exec rm {} \;
7
28.01.2020, 02:13

Рекурсивное удаление файлов с помощью опции «-r»

rm -rf name_pattern*    
eg : rm -rf dept*
-1
28.01.2020, 02:13

Теги

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