Propably да. Мое общее представление состоит в том, чтобы реализовать исходящую подсистему балансировки нагрузки (через LVS) использование виртуального IP, который Вы могли использовать в качестве шлюза по умолчанию.
Это propably намного более сложно, чем это и могло бы включить подъем сквида или чего-то одинаково.
Чтобы сделать правильно это потребовало бы перепарсинга всех опций CP, и это не хорошая идея. Но вот что-то, что должно приблизиться:
# run cp command as-given, unless any argument ends in a slash
safecp() {
for arg; do
case $arg in */)
echo "safecp: trailing slash in cp $*" >&2
return 1
;;
esac
done
cp "$@"
}
С другой стороны, попытайтесь поместить
set mark-directories off
в Вашем ~/.inputrc
заставить удар не автоматически добавить наклонную черту когда завершающие вкладку каталоги.
Вы могли, конечно, записать короткую функцию удара (с последней версией удара, который может сделать регулярные выражения, это чрезвычайно просто), который поймал бы этот вид ошибок:
function cpr () {
local src=...
if [[ "$src" =~ /$ ]]; then
# handle error
else
# proceed with copying
fi
}
хитрая часть определяет что dest
должен быть (Вы, конечно, хотите пропустить целевой каталог), если Вы хотите покрыть весь из cp
комбинации опций (по крайней мере, coreutils' GNU cp
имеет 3 различных изменения синтаксиса).
Используя специализированную функцию, которая исправила бы его оперативный, могло бы быть лучше:
function cpr () {
cp -R ${1%%/} ${2}
}
cp
ведите себя этот путь: если источник имеет запаздывание/
, затем остановитесь с предупреждением, таким образом, мы на самом деле должны использовать\cp
или так или иначе обойдите функцию, если это - то, чего мы требуем. Если нет никакого запаздывания/
в источнике затем только возобновите обычноеcp
. Я думаю, не добавляя наклонную черту, когда завершение вкладки могло быть довольно неприятным, потому что мы должны добавить наклонную черту сами каждый раз, если существует несколько уровней вниз для пути. – nopole 20.11.2012, 22:39