Bash сценарии и rsync: как включить только некоторые папки и подпапки и что произойдет, если я использую ../ в качестве пути с --delete

Это ожидаемый вывод для процессоров на базе Arm. Все сериализованные ядра показаны в списке с разрывами строк вместо разделенных процессоров. Характеристики оцениваются кодом cpuinfo, и показываются только если все ядра поддерживают их

         /*
          * Mismatched CPU features are a recipe for disaster. Don't even
          * pretend to support them.
          */
         WARN_TAINT_ONCE(diff, TAINT_CPU_OUT_OF_SPEC,
                         "Unsupported CPU feature variation.");

Другие переменные:

  • Реализатор процессора: Ваш код означает ARM;
  • Архитектура процессора: AArch64 означает 64-битную плату ARM:
  • Вариант процессора : Указывает номер варианта процессора, или "основную ревизию". Ваш - ноль.
  • Часть процессора: Номер части. 0xd03 Указывает процессор Cortex-A53.
  • Ревизия процессора: Указывает на выпуск патча или "минорную ревизию". 3, в вашем случае
  • Аппаратное обеспечение : HiKey Development Board само собой разумеется

Если вы хотите проверить максимальную тактовую частоту вашего процессора, просто введите cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq. Для проверки текущих часов dmidecode | grep "Current Speed" должно помочь.

Еще одна вещь, которая может повлиять на производительность вашего процессора, это cpu governor, который вы используете. Возможно, установка производительности будет лучше для ваших нужд:

cpupower frequency-set -g performance

Документация:

2
26.02.2019, 12:58
1 ответ

Опции для --includeи --excludeприменяются слева направо. Первые варианты всегда самые сильные, поэтому вы можете закончить список --exclude='*/', чтобы остановить дальнейшую обработку каталогов.

Однако, как только вы используете --exclude='*/', вы отключите неявную обработку всех файлов и каталогов, и вам нужно будет явно указать, какие файлы и папки включать.

  • Вы хотите включить A, Bи Eв все их файлы и папки ,
  • Вам нужен Dи его файлы, но не каталоги,
  • Вам нужны D/D2, D/D4, /D/D8и все их файлы и папки ,
  • Больше ничего.

Таким образом, мы можем построить операторы include/exclude следующим образом

rsync --dry-run -av --delete

    --include '/A' --include '/A/**'
    --include '/B' --include '/B/**'
    --include '/E' --include '/E/**'

    --include '/D'

    --include '/D/D2' --include '/D/D2/**'
    --include '/D/D4' --include '/D/D4/**'
    --include '/D/D8' --include '/D/D8/**'

    -exclude '*/'

    src/ dst/

Поскольку вы используете bash, оболочку, которая может обрабатывать массивы, вы можете безопасно создать набор инструкций --include. Вот пример:

# It's an array
includes=()

# Start with the fixed set of known directories
for known in A B E
do
    includes+=('--include' "/$known" '--include' "/$known/**")
done

# Special case
includes+=('--include' '/D')

# Now the changeable set of subdirectories. You might get this list elsewhere
for subdirs in D2 D4 D8
do
    includes+=('--include' "/D/$subdir" '--include' "/D/$subdir/**")
done

# Put it all together
rsync --dry-run -av "${includes[@]}" --exclude '*/' src/ dst/
2
27.01.2020, 22:08

Теги

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