Я не знаю об интерфейсах для удаленных соединений, но самый быстрый графический интерфейс имеют менеджеры окон, такие как Openbox или размещающие рядом менеджеры как i3, потрясающий, и т.д. Также можно попробовать xfce, но это - настольная среда, таким образом, это имеет намного больше материала и вероятно медленнее.
Другие ответы уже объяснили это, но если у Вас есть какие-либо сомнения, Вы видите что dd
делает с strace
.
$ strace dd if=/dev/urandom bs=4096 seek=7 count=2 of=file_with_holes
# output is shortened considerably
open("/dev/urandom", O_RDONLY) = 0
open("file_with_holes", O_RDWR|O_CREAT, 0666) = 1
ftruncate(1, 28672) = 0
lseek(1, 28672, SEEK_CUR) = 28672
read(0, "\244\212\222v\25\342\346\226\237\211\23\252\303\360\201\346@\351\6c.HF$Umt\362;E\233\261"..., 4096) = 4096
write(1, "\244\212\222v\25\342\346\226\237\211\23\252\303\360\201\346@\351\6c.HF$Umt\362;E\233\261"..., 4096) = 4096
read(0, "~\212q\224\256\241\277\344V\204\204h\312\25pw9\34\270WM\267\274~\236\313|{\v\6i\22"..., 4096) = 4096
write(1, "~\212q\224\256\241\277\344V\204\204h\312\25pw9\34\270WM\267\274~\236\313|{\v\6i\22"..., 4096) = 4096
close(0) = 0
close(1) = 0
write(2, "2+0 records in\n2+0 records out\n", 312+0 records in
2+0 records out
) = 31
write(2, "8192 bytes (8.2 kB) copied", 268192 bytes (8.2 kB) copied) = 26
write(2, ", 0.00104527 s, 7.8 MB/s\n", 25, 0.00104527 s, 7.8 MB/s
) = 25
+++ exited with 0 +++
Это открывается /dev/urandom
для чтения (if=/dev/urandom
), открывается file_with_holes
для создают/пишут (of=file_with_holes
).
Затем это усекает file_with_holes
кому: 4096*7
=28672
байты (bs=4096 seek=7
). Усеченные средства, что содержание файла после того положения потеряно. (Добавьте conv=notrunc
избегать этого шага). Затем это ищет на 28672
байты.
Затем это читает 4096
байты (bs=4096
используемый как ibs
) от /dev/urandom
, записи 4096
байты (bs=4096
используемый как obs
) к file_with_holes
, сопровождаемый другим чтением и записью (count=2
).
Затем это закрывается /dev/urandom
, завершения file_with_holes
, и печать, которую это скопировало 2*4096
= 8192
байты. Наконец это выходит без ошибки (0).
dd
разработан для копирования блоков данных от входного файла до выходного файла. dd
опции размера блока следующим образом из страницы справочника:
ibs=expr
Specify the input block size, in bytes, by expr (default is 512).
obs=expr
Specify the output block size, in bytes, by expr (default is 512).
bs=expr
Set both input and output block sizes to expr bytes, superseding ibs= and obs=.
dd
seek
опция подобна UNIX lseek()
система call1. Это перемещает указатель чтения-записи в файле. Из страницы справочника:
seek=n
Skip n blocks (using the specified output block size) from the beginning of the output file before copying.
Обычные файлы в UNIX имеют удобное свойство, которое Вы не должны читать или писать им запускающийся вначале; можно искать где угодно и считать или записать запуск оттуда. Так bs=4096 seek=7
средства переместить в положение 7*4096 байтов с начала выходного файла и начать писать оттуда. Это не запишет в часть файла, который является между 0 и 7*4096 байтов.
Области обычных файлов, которые никогда не пишутся в вообще, даже не выделяются базовой файловой системой. Эти области называют дырами, и файлы называют редкими файлами. В Вашем примере, file_with_holes
будет иметь 7*4096-byte дыра вначале. (h/t @frostschutz для указания на это dd
усекает выходной файл по умолчанию.)
Нормально читать эти освобожденные области; Вы добираетесь, набор обнуляет.
[1] назад, когда dd
был записан, аналогичный системный вызов был seek()
.
obs
выходной размер блока и ibs
входной размер блока. Если Вы указываете bs
без ibs
или obs
это используется для обоих.
Так Ваш искать будут 7 блоков 4096 или 28 672 байтов в начале Вашего вывода. Затем Вы скопируете 2 блока 4096 или 8 192 байтов от запуска входа к этой точке в выводе.
Ищите просто "расширит" выходной файл. Seek=7 означает, что в начале выходного файла, 7 "пустых" блоков с выходным блоком size=obs=4096bytes будут вставлены. Это - способ создать очень большие файлы быстро.
obs
касается bs
, использование команды bs
который займет место obs
если это не там.
– Graeme
11.01.2014, 14:10