Быстро создать большой файл в системе Linux

Я предлагаю использовать jQuery. То, что вы делаете прямо сейчас, легко достичь без jQuery, но поскольку вам понадобятся новые функции и больше функциональности, jQuery сэкономит вам много времени. Я также хотел бы упомянуть, что у вас не должно быть нескольких элементов DOM с одинаковым идентификатором в одном документе. В этом случае используйте атрибут класса.

html:

Relationship Type Date of Birth Gender
Spouse 1980-22-03 female
Child 2008-23-06 female

javascript:

$('body').on('click', 'input.deleteDep', function() {
   $(this).parents('tr').remove();  
});

Помните, что вам нужно ссылаться на jQuery:

Здесь приведен рабочий пример jsfiddle: http://jsfiddle.net/p9dey/1/

391
задан Peter Mortensen 8 September 2018 в 20:55
поделиться

5 ответов

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

, Например, имейте пул названных файлов:

  • /home/bigfiles/512M-A
  • /home/bigfiles/512M-B
  • /home/bigfiles/1024M-A
  • /home/bigfiles/1024M-B

Затем если у Вас есть приложение, для которого нужен файл 1G, названный/home/oracle/logfile, выполнитесь" ln /home/bigfiles/1024M-A /home/oracle/logfile".

, Если это находится в отдельной файловой системе, необходимо будет использовать символьную ссылку.

файлы A/B/etc могут использоваться, чтобы гарантировать, что между несвязанными приложениями нет никакого конфликтующего использования.

операция ссылки о том, с такой скоростью, как можно добраться.

3
ответ дан paxdiablo 8 September 2018 в 20:55
поделиться

Я не думаю, что Вы собираетесь стать намного быстрее, чем dd. Узкое место является диском; запись сотен ГБ данных к нему собирается занять много времени, неважно, как Вы делаете это.

, Но вот возможность, которая могла бы работать на Ваше приложение. Если Вы не заботитесь о содержании файла, как насчет того, чтобы создать "виртуальный" файл, содержание которого является динамическим выводом программы? Вместо открытого () луг файл, используйте popen () для открытия канала для внешней программы. Внешняя программа генерирует данные каждый раз, когда это необходимо. Как только канал открыт, он действует точно так же, как регулярный файл в этом программа, которая открыла канал, может fseek (), перемотка (), и т.д. Необходимо будет использовать pclose () вместо завершения (), когда Вы будете сделаны с каналом.

, Если для Вашего приложения нужен файл, чтобы быть определенным размером, это будет до внешней программы для отслеживания то, где в "файле" это, и отправьте eof, когда "конец" был достигнут.

5
ответ дан Barry Brown 8 September 2018 в 20:55
поделиться

Linux & все файловые системы

xfs_mkfile 10240m 10Gigfile

Linux & и некоторые файловые системы (ext4, xfs, btrfs и ocfs2)

fallocate -l 10G 10Gigfile

OS X, Солярис, SunOS и вероятно другое объяснение UNIXes

mkfile 10240m 10Gigfile

HP-UX

prealloc 10Gigfile 10737418240

Попытка mkfile <size> myfile как альтернатива для dd. С -n опция отмечен размер, но дисковые блоки не выделяются, пока данные не записаны в них. Без -n опция, заполнено нулями пространство, что означает писать в диск, что означает занимать время.

mkfile получен из SunOS и не доступен везде. Большинство систем Linux имеет xfs_mkfile , который работает точно тот же путь, и не только в файловых системах XFS несмотря на имя. Это включено в [1 113] xfsprogs (для Debian/Ubuntu) или подобные именованные пакеты.

Большинство систем Linux также имеет fallocate , который только работает над определенными файловыми системами (такими как btrfs, ext4, ocfs2, и xfs), но является самым быстрым, поскольку это выделяет все файловое пространство (создает недырявые файлы), но не инициализирует ни одного из него.

138
ответ дан Randy Proctor 8 September 2018 в 20:55
поделиться
  • 1
    Можно использовать :protocol => 'https://' эквивалентность, Вы передаете хеш redirect_to при передаче относительного URL как в вопросе выше который не будет работать. Я соглашаюсь, что before_filter лучший способ пойти в целом. – Michael Sepcot 3 November 2009 в 15:13

То, где ищут, является размером файла, который Вы хотите в байтах - 1.

dd if=/dev/zero of=filename bs=1 count=1 seek=1048575
42
ответ дан Christian 8 September 2018 в 20:55
поделиться
  • 1
    В эти дни взгляд force_ssl, доступный в направляющих 3.1 и выше. – Matt Sanders 12 August 2013 в 15:22
truncate -s 10M output.file

мгновенно создаст файл размером 10 М (М означает 1024*1024 байт, МБ означает 1000*1000 - то же самое с К, КБ, Г, ГБ...)

EDIT: как многие отметили, это не будет физически выделять файл на вашем устройстве. С его помощью вы можете создать произвольный большой файл, независимо от доступного пространства на устройстве, поскольку он создает "разреженный" файл.

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

Но эту команду все равно полезно знать

94
ответ дан 22 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

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