РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
616 of 1593 menu

Функция os.Link

Функция os.Link создает новую жесткую ссылку на существующий файл. В первый параметр передается путь к существующему файлу (oldname), во второй параметр передается путь для новой жесткой ссылки (newname). После создания ссылки оба пути указывают на одни и те же данные на диске. Функция возвращает ошибку типа error, если операция не удалась.

Жесткая ссылка отличается от символической тем, что она напрямую ссылается на индексный дескриптор (inode) файла. Это означает, что после создания жесткой ссылки, удаление исходного файла не уничтожит данные, пока существует хотя бы одна ссылка на него. Жесткие ссылки работают только в пределах одной файловой системы и не могут ссылаться на каталоги.

Синтаксис

os.Link(oldname, newname)

Пример

Давайте создадим жесткую ссылку на существующий файл:

package main import ( "fmt" "os" ) func main() { // Создаем исходный файл err := os.WriteFile("original.txt", []byte("Hello, World!"), 0644) if err != nil { fmt.Println("Error creating file:", err) return } // Создаем жесткую ссылку err = os.Link("original.txt", "hardlink.txt") if err != nil { fmt.Println("Error creating hard link:", err) return } fmt.Println("Hard link created successfully") }

Результат выполнения кода:

"Hard link created successfully"

Пример

Давайте проверим, что оба файла содержат одинаковые данные:

package main import ( "fmt" "os" ) func main() { // Создаем исходный файл err := os.WriteFile("data.txt", []byte("Shared content"), 0644) if err != nil { fmt.Println("Error creating file:", err) return } // Создаем жесткую ссылку err = os.Link("data.txt", "link.txt") if err != nil { fmt.Println("Error creating hard link:", err) return } // Читаем данные из обоих файлов content1, _ := os.ReadFile("data.txt") content2, _ := os.ReadFile("link.txt") fmt.Printf("Original: %s\n", string(content1)) fmt.Printf("Link: %s\n", string(content2)) }

Результат выполнения кода:

"Original: Shared content" "Link: Shared content"

Пример

Давайте попробуем создать жесткую ссылку на несуществующий файл:

package main import ( "fmt" "os" ) func main() { err := os.Link("nonexistent.txt", "link.txt") if err != nil { fmt.Println("Error:", err) return } fmt.Println("Link created successfully") }

Результат выполнения кода:

"Error: link nonexistent.txt: no such file or directory"

Смотрите также

  • функцию os.Symlink,
    которая создает символическую ссылку
  • функцию os.Readlink,
    которая читает содержимое символической ссылки
  • функцию os.Rename,
    которая переименовывает или перемещает файл
  • функцию os.Remove,
    которая удаляет файл или ссылку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить