Могу ли я копировать большие файлы быстрее, не используя файловый кеш?

База данных местоположений для 11.04 и новее обрабатывается пакетом ubuntu-geoname, это набор данных, предоставленный сообществом. Если это неверно для вашей страны, вы можете отправить данные для включения в нее, инструкции для выполнения, которые доступны здесь:

https://bugs.launchpad.net/ubuntu-geonames. Как сообщить ошибка?

Для 10.10 и старше (все, что работает с gnome-панелью) вы можете сообщить об ошибке для libgweather:

https://bugs.launchpad.net/ubuntu-geonames
18
задан 2 July 2012 в 18:23

28 ответов

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 25 July 2018 в 19:25

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 31 July 2018 в 10:38

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с минимальным воздействием на вашу работающую систему, вы можете сделать что-то подобное nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 31 July 2018 в 11:41

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с минимальным воздействием на вашу работающую систему, вы можете сделать что-то подобное nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 2 August 2018 в 01:26

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 4 August 2018 в 17:00

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 6 August 2018 в 01:40

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с минимальным воздействием на вашу работающую систему, вы можете сделать что-то подобное nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 7 August 2018 в 19:09

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 10 August 2018 в 07:40

Существует утилита nocache , которая может предшествовать такой команде, как ionice и nice. Он работает путем предварительной загрузки библиотеки, которая добавляет posix_fadvise с флагом POSIX_FADV_DONTNEED к любым открытым вызовам.

Проще говоря, сообщает ядру, что для кеширования не требуется этот конкретный файл; ядро затем обычно не кэширует файл. Смотрите здесь для технических деталей.

Это делает чудеса для любых огромных заданий копирования, e. г. если вы хотите сделать резервную копию многотерабайтного диска в фоновом режиме с наименьшим влиянием на вашу работающую систему, вы можете сделать что-то вместе с nice -n19 ionice -c3 nocache cp -a /vol /vol2.

Пакет будет доступен в Ubuntu 13.10 и выше. Если вы используете предыдущий выпуск, вы можете установить 13.10 пакет или выбрать этот 12.04 бэкпорт Франсуа Марие.

17
ответ дан 15 August 2018 в 19:43
  • 1
    Я надеялся на что-то, что можно было бы сделать с помощью графического интерфейса, а также на способ просто занести в черный список папки «без кеша», но сейчас это нужно сделать. – Veazer 8 July 2012 в 14:56

Для одиночных больших файлов используйте dd с прямым вводом-выводом для обхода кеша файлов:

Если вы хотите перенести один (или несколько) большой файл с несколькими гигабайтами, do dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
Флаги direct указывают dd использовать опцию прямого ввода-вывода ядра (O_DIRECT) во время чтения и записи, тем самым полностью обходя кеш-файл , Параметр bs blockize должен быть установлен на достаточно большое значение, поскольку для минимизации количества операций с физическим диском dd должно выполняться, поскольку чтение / запись больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; установка выше - 4 МБ (4M).

Для кратных / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод-вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 25 May 2018 в 12:36
  • 1
    Рекурсивный может быть выполнен с помощью оператора zsh **. zsh необходимо установить вручную из репозитория. – hexafraction 4 July 2012 в 22:23
  • 2
    Вообще-то, нет. dd 's странный синтаксис замалчивает ** oprtator. Вы можете все еще использовать скрипт, который получил аргументы обычно (dd.sh in.file out.file с ** в именах файлов) и дал имена файлов в dd с помощью $1, $2, и т.д., которые не должны быть осквернены странным синтаксисом д.Д. , – hexafraction 5 July 2012 в 22:04
  • 3
    Прямые действия выполняются очень медленно, поскольку AFAIK также отключает кэши с readahead, что, вероятно, не так, как вы хотите, и нереалистично в сценарии сравнения. Использовать " iflag = nocache oflag = nocache " вместо этого, что точно говорит ОС, что вам не нужен файл in-file или out-file. – stolsvik 18 November 2012 в 21:44

Вы можете скопировать каталог рекурсивно с помощью dd с помощью find и mkdir

Нам нужно обойти две проблемы:

dd не знает, что для каталогов dd можно копировать только один файл за раз

Сначала давайте определим директории ввода и вывода:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd в исходный каталог, чтобы find будет сообщать относительные каталоги, с которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дублировать файлы из $SOURCE к $TARGET, опускающему кеш-запись (но используя кэш чтения!)

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 25 May 2018 в 12:36

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 25 July 2018 в 19:25

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 25 July 2018 в 19:25

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 31 July 2018 в 10:38

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 31 July 2018 в 10:38

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 31 July 2018 в 11:41

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 31 July 2018 в 11:41

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd войдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 2 August 2018 в 01:26

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 2 August 2018 в 01:26

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 4 August 2018 в 17:00

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 4 August 2018 в 17:00

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 6 August 2018 в 01:40

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 6 August 2018 в 01:40

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd войдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 7 August 2018 в 19:09

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 7 August 2018 в 19:09

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd перейдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 10 August 2018 в 07:40

Для одиночных больших файлов используйте dd с direct I / O для обхода файлового кеша:

Если вы хотите передать один (или несколько) больших мульти -gigabyte файлы, это легко сделать с помощью dd:

dd if=/path/to/source of=/path/to/destination bs=4M iflag=direct oflag=direct
  • Флаги direct говорят dd использовать опцию прямого ввода / вывода ядра (O_DIRECT), пока чтение и запись, таким образом полностью обходя файловый кеш.
  • Для параметра размера блока bs должно быть установлено достаточно большое значение, поскольку для минимизации числа операций физического диска, которые должна выполнять dd, так как read / записи больше не кэшируются, и слишком много небольших прямых операций может привести к серьезному замедлению. Не стесняйтесь экспериментировать со значениями от 1 до 32 МБ; настройка выше - 4 МБ (4M).

Для нескольких / рекурсивных копий каталогов, к сожалению, нет доступных инструментов; обычные cp и т. д. не поддерживают прямой ввод / вывод.

/ e iflags & amp; oflags изменен на правильный iflag & amp; Oflag

10
ответ дан 10 August 2018 в 07:40

Вы можете рекурсивно скопировать каталог с помощью dd, используя find и mkdir

. Нам нужно обойти две проблемы:

  1. dd didn ' t знать, что делать с каталогами
  2. dd может копировать только один файл за раз

Сначала давайте определим входные и выходные каталоги:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd войдем в исходный каталог, чтобы find сообщал об относительных каталогах, которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дубликаты файлов с $SOURCE по $TARGET без кэша записи (но с использованием кэша чтения!) [/ ​​g8]

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

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

0
ответ дан 15 August 2018 в 19:43

Другие вопросы по тегам:

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