在 Linux 下使用 Golang 复制文件,并保留文件权限,可以使用 os.FileMode 类型的 Chmod 方法来设置文件权限,具体实现代码如下:

package main

import (
    "fmt"
    "io"
    "os"
)

func main() {
    srcFile, err := os.Open("src.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer srcFile.Close()

    dstFile, err := os.Create("dst.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer dstFile.Close()

    _, err = io.Copy(dstFile, srcFile)
    if err != nil {
        fmt.Println(err)
        return
    }

    fileInfo, err := os.Stat("src.txt")
    if err != nil {
        fmt.Println(err)
        return
    }

    err = os.Chmod("dst.txt", fileInfo.Mode())
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("文件复制完成")
}

代码中,首先打开源文件和目标文件,然后使用 io.Copy 方法将源文件内容复制到目标文件中。接着获取源文件的文件信息,包括文件权限,最后使用 os.Chmod 方法将目标文件的权限设置为源文件的权限。

linux下golang复制文件带文件权限

原文地址: https://www.cveoy.top/t/topic/55V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录