Почему я должен переиздать файл, когда я обновляю его?

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

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

Разве не могло быть возможно сохранить новую версию Вашего файла, и та же ссылка просто "указывает" на более новую версию?

3
задан 24 June 2011 в 07:45

1 ответ

От Chipaca (Ubuntu Один dev) отвечают на подобный вопрос:

Однако при редактировании его с редактором, который переименовывает файл, создает новый, копирует содержание в и затем удаляет оригинал (как большинство редакторов делает), и syncdaemon работает, это будет видеть переименовывание и удаление, и общедоступный URL будет относиться сначала к переименованному файлу и затем исчезнет.

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

В основном, когда Вы сохранили файл с большинством редакторов, Вы на самом деле заменяете исходный файл измененной версией. Вы видите для себя с помощью stat команда:

hello@world:~$ stat -c %i hello.txt
4971

Команда stat -c %i возвращает inode количество файла.
Выполнение той же самой команды снова после того, как я отредактировал hello.txt в gedit
возвращает другое inode число:

hello@world:~$ stat -c %i hello.txt
3794

Если я просто добавляю строку текста в конец использования файла >> файл просто изменяется на месте, не перезаписывается:

hello@world:~$ echo "The End." >> hello.txt
hello@world:~$ stat -c %i hello.txt
3794

Я нашел немного неловкий способ обойти это ограничение в Ubuntu Один:

  1. Создайте копию опубликованного файла:

    cp hello.txt hello-copy.txt
    
  2. Сделайте всю свою работу над копией вместо опубликованного файла:

    gedit hello-copy.txt
    
  3. Когда Вы хотите обновить опубликованный файл, выполнить следующую команду:

    cat hello-copy.txt > hello.txt
    
4
ответ дан 1 December 2019 в 16:13

Другие вопросы по тегам:

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