Удалить файл и символическую ссылку вместо перезаписи файла - PullRequest
1 голос
/ 21 января 2012

Недавно я читал некоторый исходный код, который обновил код на сервере. Вместо того, чтобы просто написать это, чтобы обновить myfile:

mv myfile.inactive myfile

Было это:

rm myfile
ln -s myfile.inactive myfile

В чем разница? Почему вы хотите сделать это вторым способом?

myfile может быть исполняемым файлом или текущим процессом, если это имеет значение.

1 Ответ

2 голосов
/ 21 января 2012

первая версия переименовывает myfile.inactive в myfile. После этой команды больше нет myfile.inactive

второй создает символическую ссылку на myfile.inactive. Так что этот файл все еще там. При удалении (rm myfile) файла вы удаляете только символическую ссылку. Имейте в виду, что если вы измените myfile, он также изменится в myfile.inactive. Эта версия хороша, чтобы легко изменить версию, которую вы используете. например myfile.debug, myfile.live, myfile.version1, myfile.version2 ... вам нужно всего лишь изменить символическую ссылку на один из файлов, чтобы "активировать" тот, который вы хотите.

...