Запретить mv перемещать целевую папку

Требования к памяти Минимальные и максимальные текущие требования к памяти для AIX версии 7.1 различаются в зависимости от конфигурации.

Общее правило для минимального текущего требования к памяти для AIX 7.1 составляет 512 МБ. Меньшая минимальная текущая память может поддерживать конфигурацию с очень небольшим количеством устройств или с небольшой максимальной конфигурацией памяти.

AIX 7.1 требует, чтобы минимальные текущие требования к памяти увеличивались по мере увеличения максимальной конфигурации памяти или количества устройств, или того и другого. Большие максимальные конфигурации памяти или дополнительные устройства увеличивают минимальные текущие требования к памяти. Если минимальные требования к памяти не увеличиваются вместе с максимальной конфигурацией памяти, раздел зависает во время начальной загрузки программы (IPL ).

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

32-битная --битная модель виртуальной памяти AIX AIX выделяет виртуальное адресное пространство, разделенное на 16 сегментов по 256 МБ.

Обработка адресного пространства для данных управляется на уровне сегмента, поэтому сегмент данных может быть либо общим (между процессами ), либо частным.

Сегмент 0 назначается ядру. Сегмент 1 представляет собой текст прикладной программы (статический собственный код ). Сегмент 2 представляет собой данные прикладной программы и стек приложений (, первичный стек потоков и частные данные ). Сегменты с 3 по C являются общей памятью, доступной для всех процессов. Сегмент D — это текст общей библиотеки. Сегмент E также используется совместно с памятью и разным использованием ядра. Сегмент F — область данных.

64-битная -модель виртуальной памяти AIX 64-битная модель -позволяет использовать гораздо больше сегментов, хотя размер каждого сегмента по-прежнему составляет 256 МБ.

Опять же, адресное пространство управляется на уровне сегмента.но гранулярность функций для каждого сегмента намного тоньше.

Благодаря большому адресному пространству, доступному для 64-разрядного -битного процесса, вы вряд ли столкнетесь с такими же проблемами, связанными с собственной кучей, хотя вы все равно можете страдать от утечки в собственной куче.

2
24.06.2020, 18:36
1 ответ

В zsh, пока вы этого не сделаете unsetopt auto_remove_slash, zsh удаляет косую черту в конце завершения. Он добавляет косую черту во время завершения, так чтоbaвкладка приводит к bar/, но если вы нажмете пробел(или переместите курсор или что-либо еще, кроме вставки чего-либо ), zsh удалит /. (/выделено, чтобы указать, что это «на помойку».)

Если вы вводите команду с косой чертой mv bar/ baz, ожидаемым поведением будет переименование каталога foo. Поскольку bar/заканчивается косой чертой, разрешение пути преобразует его в foo.

Если вы хотите избежать такого поведения, вам придется написать функцию-оболочку для mv. Не проверено, для зш:

function mv {
  local i
  for ((i=1; i < $#; i++)); do
    if [[ $argv[$i] == *[^/]*/ ]]; then
      argv[$i]=${argv[i]%/}
    fi
  done
  command mv "$@"
}

Обратите внимание, что эта функция довольно наивна, например, она не понимает, что -t/ --targetпринимает пункт назначения в качестве аргумента, у которого не должна быть удалена завершающая косая черта.

1
18.03.2021, 23:25

Теги

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