mirror of
https://github.com/avelino/awesome-go.git
synced 2024-11-14 16:42:23 +00:00
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"log"
|
||
"os"
|
||
)
|
||
|
||
func main() {
|
||
|
||
/*
|
||
Hard Links and Symlinks
|
||
*/
|
||
|
||
// Bir "Hard Link" oluştur
|
||
// Aynı içeriğe işaret eden iki dosya adı olacaktır.
|
||
// Birinin içeriğini değiştirmek diğerini değiştirecek
|
||
// Birini silmek / yeniden adlandırmak diğerini etkilemez
|
||
err := os.Link("demo.txt", "demo_also.txt")
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
|
||
fmt.Println("sym oluşturma")
|
||
|
||
// Symlink oluştur
|
||
err = os.Symlink("demo.txt", "demo_also.txt")
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
|
||
// Lstat dosya bilgisini döndürür.
|
||
// Ama aslında o bir symlink ise symlink hakkında bilgi döndürür.
|
||
// Bağlantıyı takip etmeyecek ve gerçek dosya hakkında bilgi vermeyecektir.
|
||
// Symlink'ler Windows'da çalışmaz.
|
||
fileInfo, err := os.Lstat("demo_sym.txt")
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
fmt.Printf("Bağlantı Bilgisi: %+v", fileInfo)
|
||
|
||
// Sadece bir symlink'in sahipliğini değiştir.
|
||
// Ama işaret ettiği dosyanın sahipliğini değiştirmez.
|
||
err = os.Lchown("demo_sym.txt", os.Getuid(), os.Getgid())
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
}
|