Очевидно, дополнительное дисковое пространство не отображается виртуальной машиной, поскольку оно не выделено разделу.
Решение состоит в том, чтобы изменить размер раздела vm.
Первый шаг заключается в том, чтобы поместить нераспределенное пространство в последний раздел, что можно сделать с помощью parted. См. https://www.gnu.org/software/parted/manual/html_node/parted_31.html
Второй шаг - увеличить файловую систему раздела, чтобы заполнить новое пространство. Как это сделать, зависит от формата раздела. Например, в случае ext4 вы можете найти инструкции по адресу https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ext4grow.html
В итоге пришлось использовать rnm . Немного некрасиво, но работает:
find /mnt/test -name '*.dav' -exec sh -c 'for filename do
if [[ $(basename "$filename") != C*.dav ]];then
find "$filename" -type f -execdir ~/bin/rnm -y "$filename" -ns '/pd05/_/pd03/_/n/.dav' \;
fi
done' find-sh {} \;
find /mnt/test -name '*.dav' -exec sh -c 'for filename do
rename "[M][0@0][0]" "" "$filename"
done' find-sh {} \;
find /mnt/test -name '*.dav' -type f -execdir sh -c 'mv "$@" ./../../../../..' find-sh {} \;
PS: Да, я оба пользователи. Изначально я разместил сообщение как гость, а затем перешел по электронной почте, чтобы создать учетную запись. Удивлен, что это не было автоматическим. Извините за путаницу с обратной косой чертой, скопировал файлы на ноутбук с Windows, забыл изменить обратно для публикации.
Обновление 1: удалено зацикливание на результатах поиска
Следующий код:
find /mnt/test -name '*.dav' -exec sh -c 'for filename do
if [[ $(basename "$filename") != C*.dav ]];then
find "$filename" -type f -execdir ~/bin/rnm -y "$filename" -ns '/pd05/_/pd03/_/n/.dav' \;
fi
done' find-sh {} \;
Можно оптимизировать вот так (без find
или для цикла
):
rnm -y -ns '/pd5/_/pd3/_/n/.dav' -ss '^[^C].*\.dav$' -fo -dp -1 /mnt/test
-ss
: строка поиска (регулярное выражение). Используемое выше регулярное выражение ищет файлы, которые заканчиваются на .dav
и не начинаются на C
.
-fo
: Режим только файлов.
-dp
: Глубина. -1
означает неограниченную глубину, т.е. переход во все подкаталоги.
-ns
: строка имени (новое имя)
/ pd
: правило строки имени, которое подразумевает разные уровни имен родительских каталогов: 0 - непосредственный родитель, 1 - выше это и так далее.
/ n /
: Другое правило строки имени, которое подразумевает имя файла без расширения. /n/.dav
можно заменить на / fn /
(полное имя).
-y
: подтвердить ( - да
) для всех.