linux使用ll命令查看中文名文件会出现?????的问题
时间: 2023-10-26 21:43:26 浏览: 51
这是因为ll命令是一个别名,通常是指向ls -l的命令,而ls -l默认使用ASCII码进行编码和解码,无法正确显示中文字符。您可以使用ls命令或者设置LANG环境变量来解决这个问题。例如,使用ls命令时,可以使用ls --show-control-chars或者LANG=zh_CN.UTF-8 ls -l来正确显示中文字符。
相关问题
ll查看文件时出现d????????? ? ? ? ? ? date
当使用ll命令查看文件时,如果出现d????????? ? ? ? ? ? date的情况,这表示该文件的权限或者所有者出现了问题,导致无法正常显示文件信息。其中d表示该文件是一个目录,后面的问号表示该文件的权限或者所有者信息无法正常读取。此时可以使用chown和chmod命令来修改文件的所有者和权限信息,以解决该问题。
如何使用Golang解压tar文件?
以下是使用Golang解压tar文件的方法:
```go
package main
import (
"archive/tar"
"compress/gzip"
"fmt"
"io"
"os"
"path/filepath"
)
func main() {
// 打开tar.gz文件
file, err := os.Open("file.tar.gz")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close()
// 创建gzip.Reader
gzipReader, err := gzip.NewReader(file)
if err != nil {
fmt.Println("创建gzip.Reader失败:", err)
return
}
defer gzipReader.Close()
// 创建tar.Reader
tarReader := tar.NewReader(gzipReader)
// 遍历tar文件中的每个文件
for {
header, err := tarReader.Next()
if err == io.EOF {
break
}
if err != nil {
fmt.Println("读取tar文件失败:", err)
return
}
// 获取文件路径
target := header.Name
// 判断文件类型
switch header.Typeflag {
case tar.TypeDir:
// 如果是文件夹,创建文件夹
err = os.MkdirAll(target, 0755)
if err != nil {
fmt.Println("创建文件夹失败:", err)
return
}
case tar.TypeReg:
// 如果是文件,创建文件并写入内容
file, err := os.Create(target)
if err != nil {
fmt.Println("创建文件失败:", err)
return
}
defer file.Close()
_, err = io.Copy(file, tarReader)
if err != nil {
fmt.Println("写入文件内容失败:", err)
return
}
default:
fmt.Printf("未知文件类型:%v\n", header.Typeflag)
}
}
fmt.Println("解压tar文件成功!")
}
```