Zsh пытается быть умным в выборе завершений, но это не достаточно умно, чтобы знать это после doctrine --configuration=
, это должно завершить имя файла. Bash или достаточно умен для парсинга этой команды правильно, или слишком глупый для завершения чего-либо кроме имени файла здесь.
Можно записать функцию завершения для doctrine
. Это немного совершенствуется, хотя — функции завершения имеют тенденцию быть немного тайными. Можно найти легче записать completer использование альтернативной, более старой, более простой, но менее мощной системы завершения zsh, compctl
(зарегистрированный в zshcompctl
страница справочника).
Если у Вас есть функция завершения удара для doctrine
, Вы смогли заставлять zsh читать его включением autoload bashcompinit; bashcompinit
в Вашем ~/.zshrc
. Посмотрите Переключение с удара на zsh Wiki.
Можно найти полезным связать несколько ключей к _bash_complete-word
. Этот виджет (интерактивная команда) выполняет завершение нескольких встроенных типов, в зависимости от последнего знака в сочетании клавиш, которое вызвало виджет: /
для каталогов, $
для названий параметра, и т.д. Например, включать bindkey '^X/' _bash_complete-word
в Вашем ~/.zshrc
, и нажмите Ctrl+X / для завершения имени файла в любом контексте (Вы, возможно, должны были бы временно вставить пробел перед именем файла, если имени файла предшествует пунктуация, которая не является разделителем слов в оболочке).
Диапазон является просто верхней границей И нижней границей. От find
спецификация:
выражение [-a] выражение
Соединение основных устройств; операция И подразумевается сопоставлением двух основных устройств или делается явная дополнительным-a оператором. Второе выражение не должно быть оценено, если первое выражение будет ложью.
Таким образом, все, что необходимо сделать, указывают обе границы размера перед -delete
действие.
-a
в явном AND
оператор, который позволяет Вам соединяться два основных устройства. В этом случае, создающем использование диапазона -size
.
find . -size +386b -a -size -390b -exec rm -f {} \;
Обратите внимание, что размер является числовым аргументом, который может дополнительно предварительно ожидаться с +
и -
. От man 1 find
:
Numeric arguments can be specified as
+n for greater than n,
-n for less than n,
n for exactly n.
find
условиями является логически AND'd по умолчанию. Таким образом, я просто добавил еще один size
условие и это хорошо работали! Заключительная команда похожа: find . -maxdepth 1 -size +358c -size -395c -delete
– Eugene S
30.04.2012, 18:15
Каждый раз, когда find
ожидает число, можно поместить a +
знак перед ним для значения больше, чем это число или a -
подайте знак иметь в виду меньше, чем это число. Это строгие неравенства: +3
и -7
средства 4, 5 или 6.
С -size
основной, необходимо добавить суффикс c
указать, что число составляет многие байты. Можно связать несколько основных устройств для взятия их соединения (в некоторых версиях, можно поместить -a
или -and
между ними). Таким образом:
find . -size +385c -size -391c -delete
В zsh можно использовать L
спецификатор шарика. Единица по умолчанию является байтами; как find
, символы +
и -
укажите на строгие неравенства.
rm *(L+385-391)
(Команда выше не рекурсивно вызывает в подкаталоги; при необходимости в этом добавить **/
перед шаблоном.)
Один способ использовать perl
:
perl -e '
for ( @ARGV ) {
if ( -s >= 386 && -s _ <= 390 ) {
unlink $_ or printf qq[%s\n], qq[Could not delete $_: $!]
}
}
' *