Функция os.Symlink
Функция os.Symlink создает символическую ссылку,
указывающую на исходный файл или директорию.
Первый параметр функции — это путь к существующему файлу
или директории (исходный объект), второй параметр — путь,
где будет создана символическая ссылка.
Функция возвращает ошибку, если не удалось создать ссылку
(например, если исходный объект не существует или недостаточно
прав доступа).
Синтаксис
os.Symlink(oldname, newname)
Пример
Давайте создадим символическую ссылку на существующий файл:
package main
import (
"fmt"
"os"
)
func main() {
// Создаем файл-оригинал
err := os.WriteFile("original.txt", []byte("Hello, World!"), 0644)
if err != nil {
fmt.Println("Failed to create original file:", err)
return
}
// Создаем символическую ссылку на original.txt
err = os.Symlink("original.txt", "link.txt")
if err != nil {
fmt.Println("Failed to create symlink:", err)
return
}
fmt.Println("Symlink created successfully")
}
Результат выполнения кода:
"Symlink created successfully"
Пример
Давайте попытаемся создать символическую ссылку на несуществующий файл:
package main
import (
"fmt"
"os"
)
func main() {
err := os.Symlink("nonexistent.txt", "bad_link.txt")
if err != nil {
fmt.Println("Error:", err)
}
}
Результат выполнения кода:
"Error: link nonexistent.txt bad_link.txt: no such file or directory"
Пример
Давайте создадим символическую ссылку на директорию:
package main
import (
"fmt"
"os"
)
func main() {
// Создаем директорию
err := os.Mkdir("source_dir", 0755)
if err != nil {
fmt.Println("Failed to create directory:", err)
return
}
// Создаем символическую ссылку на директорию
err = os.Symlink("source_dir", "link_dir")
if err != nil {
fmt.Println("Failed to create symlink:", err)
return
}
fmt.Println("Symlink to directory created successfully")
}
Результат выполнения кода:
"Symlink to directory created successfully"
Смотрите также
-
функцию
os.Readlink,
которая читает содержимое символической ссылки -
функцию
os.Link,
которая создает жесткую ссылку на файл -
функцию
os.Lstat,
которая получает информацию о файле без перехода по ссылке -
функцию
filepath.EvalSymlinks,
которая преобразует путь, разрешая все символические ссылки