переименование огромной папки: это рискованно?

Если вы хотите удалить сам маркер, попробуйте это в одной строке:

sed -e '/MARKER/ r /tmp/insert.txt' -e '/MARKER/d' < inputfile

или

sed -e '/MARKER/ {r /tmp/insert.txt' -e 'd }' < inputfile
19
24.09.2017, 20:45
3 ответа

Если вы просто переименуете (источник и цель в той же файловой системе ), это просто переименование записи каталога. Либо это удается, и каталог получает новое имя, либо происходит сбой, и в этом случае ничего не меняется*.

Если источник и цель находятся в разных файловых системах, данные необходимо скопировать с помощью mv. Различия в характеристиках файловой системы, таких как максимальный размер файла, ограничения в именах файлов и т. д., могут вызвать проблемы. Во избежание проблем сначала скопируйте файлы (cp, rsync, … ), а после успешного завершения копирования удалите файлы в исходное расположение.

*Однако есть некоторые крайние случаи, например, упомянутые в разделе ОШИБКИ вman 2 rename

14
27.01.2020, 19:44

Как уже говорили другие, переименование папки не представляет неотъемлемого риска для содержимого. Но есть другой вид риска, который вы, возможно, захотите рассмотреть.

Существующие процедуры, скрипты, пользовательские -ярлыки и конфигурации, которые ссылаются на исходное расположение, могут быть повреждены этим изменением, и если пути хранятся, например, в базе данных, их обновление может потребовать больших усилий.

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

Такая команда должна это сделать :ln -s /data /BD_FILES

8
27.01.2020, 19:44

Переименование атомарно.Единственный разумный риск заключается в том, что mvпо какой-то причине решит скопировать все, что приведет к сбою на полпути. Если у вас есть GNU mv, mv -Tустранит этот риск.

mv -Tсообщает mv, что он перемещается в папку, отличную от -; что заставит его отказаться от выполнения mkdir(), что, в свою очередь, приведет к сбою при перемещении папки, которую по какой-то причине решили скопировать.

Много лет назад, когда я работал над своей магистерской диссертацией, я занимался вытряхиванием ошибок из mv -T. Раньше он делал неправильные вещи в слишком многих крайних случаях.

С другой стороны, у вас есть 180 ГБ пользовательских данных в корневом разделе. Вы, вероятно, хотите переместить это из корневого раздела.

3
27.01.2020, 19:44

Теги

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