Когда `mv` изменяет метку времени файла, а когда нет?

Простым решением этой проблемы, если вы перенаправляете порт через маршрутизатор, является установка для входящего порта любого значения, которое вы хотите, а для локального порта - 22. Ваш компьютер по-прежнему будет использовать ssh-соединение на 22-м как обычно, но на самом деле будет подключаться через вне вашей сети вы будете использовать свой входящий порт. Если вы просто пытаетесь помешать ботам забивать вашу машину на 22, это должно сработать.

Это может не помочь в решении вашей конкретной проблемы, но я полагаю, что многие люди попадают сюда по этой причине.

1
27.02.2019, 03:15
1 ответ

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

Большинство реализаций mvпытаются не изменять метку времени файла при его перемещении. Тем не менее, может не учитывать последствия последующих частей движения.

В основном это означает:

  • Если вы перемещаете файл или каталог в файловой системе, временные метки этого файла или каталога не изменятся.

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

  • Если вы перемещаете пустой каталог в другую файловую систему, применяется то же правило.

  • Если вы переместите каталог с содержимым в другую файловую систему, mvсоздаст mkdirновый каталог, реплицирует права и владельца и восстановит исходное время... а затем переместит в него содержимое этого каталога., обновив временную метку. Некоторые реализации исправляют это (, например GNU coreutils mv8.29 ), а другие не (, как те, на которых я помню, как тестировали это поведение до ).

  • mvбудет всегда обновлять метку времени в каталоге, из которого он перемещает файлы/каталоги, и каталоге, в который он перемещает файлы/каталоги. (По сути, он изменяет эти каталоги, поэтому, конечно, он обновляет их временную метку изменения, если рассматриваемая файловая система имеет временные метки изменения. Насколько я знаю, это все они.)

6
27.01.2020, 23:18

Теги

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