Perl идет с a rename(1)
команда, которая установлена в большинстве систем Linux. В находящихся в Debian системах это находится в /usr/bin
и для этого случая, Вы использовали бы его как это:
$ rename 's/tmp$/temp/' /home/*/tmp
Первым аргументом является выражение жемчуга, которое действует на последующие аргументы, генерирующие новое имя. Каждый затем переименован согласно результату того выражения.
Если корневому каталогу уже назвали файл/каталог temp
, Вы просто получите ошибку для того каталога и rename
продолжится:
/home/c/tmp not renamed: /home/c/temp already exists
Можно выполнить его сначала с -n
флаг для наблюдения, что переименовывает, обошелся бы без фактического выполнения его и удостоверился бы, что все это выглядит правильным. Затем отбросьте -n
и позвольте ему сделать свое задание.
Это не будет работать, как маловероятно, что ваши хосты сопоставляются в файловой системе (I.E. Windows C: Drive, поэтому, скорее всего, NTFS), поддерживает полный спектр битов разрешений, которые ожидают, что Git Linux ожидает.
В аналогичной ситуации я экспортировал каталог Linux через Samba и использовал это из Windows и Linux без проблем. Это, однако, имеет недостаток, который вы не можете получить доступ к данным, когда VM не работает.
Для Linux файловая система, смонтированная на хосте, является чужой машиной, поэтому она не имеет никакого контроля над разрешениями файлов в этой системе. Этот контроль принадлежит хосту. Поэтому вам нужно настроить права доступа к той части диска, которой вы можете управлять.
Я связываю свой виртуальный ящик с подкаталогом моей папки «Документы». Таким образом, я могу открыть разрешения, не беспокоясь о повреждении файлов ОС хост-системы.