Как скопировать три файла сразу вместо одного файла за один раз в сценариях оболочки удара?

Это не только для индийских шрифтов . Вместо этого вы можете сказать комбинирование символов . Большинство сценариев индийского языка содержат символы :-). Например, каннада, хинди, тамильский, малаялам и т. Д. И т. Д. почти все: -)

Xterm поддерживал только Уровень 1 (без комбинирующих символов) ISO 10646-1 с фиксированной шириной символа и направлением письма слева направо [Никаких арабских символов, я думаю, это урду справа налево]. Другими словами, семантика терминала была в основном такой же, как и для ISO 8859-1, за исключением того, что теперь он может декодировать UTF-8 и иметь доступ к 16-битным символам.

Версия xterm , которая поставляется с XFree86 4.0 или выше, включает поддержку UTF-8 . Чтобы активировать его, запустите xterm в локали UTF-8 и используйте шрифт с кодировкой iso10646-1 , например, с

LC_CTYPE=en_GB.UTF-8 xterm -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

. Если вы не используете XFree86 4.0 или новее, то вы также можете загрузить последнюю версию xterm для разработки отдельно и скомпилировать ее самостоятельно с помощью

./ configure --enable-wide-chars; make

или, альтернативно, с помощью

xmkmf; сделать Makefile; делать; сделать установку; сделайте install.man .

Если у вас нет поддержки локали UTF-8 , используйте параметр командной строки -u8 при вызове xterm для переключения ввода и вывода в UTF. -8.

Для получения дополнительной информации см. Следующую ссылку:

http://www.cl.cam.ac.uk/~mgk25/unicode.html

1
21.04.2014, 21:48
2 ответа

Параллельное выполнение нескольких копий редко бывает полезным: независимо от того, является ли ограничивающий фактор пропускной способностью сети или пропускной способностью диска, вы получите N параллельных потоков, скорость каждого из которых будет в 1 / N раз больше.

С другой стороны, когда вы копируете из или в несколько источников (здесь B и C), тогда есть преимущество в параллельном копировании, если узкое место находится на стороне B и C (скорее, чем на общей стороне). Так что вы можете попробовать делать копии параллельно:

rsync -avz david@${FILERS_LOCATION[0]}"${primary_files}" $PRIMARY/ &
rsync -avz david@${FILERS_LOCATION[1]}"${primary_files}" $PRIMARY/ &
wait

Обратите внимание, что выходные данные двух команд rsync будут смешаны; вы можете отправить его в отдельные файлы.

log_base=$(date +%Y%m%d-%H%M%S-$$)
rsync -avz david@${FILERS_LOCATION[0]}"${primary_files}" $PRIMARY/ >$log_base-B.log &
rsync -avz david@${FILERS_LOCATION[1]}"${primary_files}" $PRIMARY/ >$log_base-C.log &
wait

Вы используете несколько SSH-соединений с одним и тем же местом назначения в вашем скрипте. Установление SSH-соединения неизбежно приводит к задержке. Вы можете сэкономить немного времени, оставив соединение открытым и повторно используя его, что легко сделать благодаря основным соединениям .

1
27.01.2020, 23:52

Вы можете выполнять несколько операций параллельно, используя фоновые процессы . В качестве общего примера:

rsync foo machine1: &
rsync bar machine2: &
rsync baz machine3: &
wait

wait гарантирует, что программа не продвинется дальше этой точки до завершения всех фоновых процессов, созданных сценарием.

& идет в самом конце каждой командной строки, поскольку, как и ; , это разделитель команд.

0
27.01.2020, 23:52

Теги

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