Skip to content

文件属性

基本属性

查看文件属性

bash
#!/bin/bash

# 查看文件属性
ls -l file.txt

# 查看文件详细信息
stat file.txt

文件类型

bash
#!/bin/bash

# 查看文件类型
file file.txt

# 查看文件类型(详细)
file -b file.txt

文件权限

查看文件权限

bash
#!/bin/bash

# 查看文件权限
ls -l file.txt

# 查看文件权限(数字)
stat -c "%a" file.txt

修改文件权限

bash
#!/bin/bash

# 修改文件权限
chmod 755 file.txt

# 递归修改目录权限
chmod -R 755 directory

文件所有者

查看文件所有者

bash
#!/bin/bash

# 查看文件所有者
ls -l file.txt

# 查看文件所有者(详细)
stat -c "%U %G" file.txt

修改文件所有者

bash
#!/bin/bash

# 修改文件所有者
chown user file.txt

# 修改文件所有者和组
chown user:group file.txt

# 递归修改目录所有者
chown -R user:group directory

文件大小

查看文件大小

bash
#!/bin/bash

# 查看文件大小
ls -lh file.txt

# 查看文件大小(字节)
ls -l file.txt

# 查看文件大小(详细)
stat -c "%s" file.txt

计算目录大小

bash
#!/bin/bash

# 计算目录大小
du -sh directory

# 计算目录大小(详细)
du -h directory

文件时间

查看文件时间

bash
#!/bin/bash

# 查看文件时间
ls -l file.txt

# 查看文件时间(详细)
stat file.txt

修改文件时间

bash
#!/bin/bash

# 修改文件访问时间
touch -a file.txt

# 修改文件修改时间
touch -m file.txt

# 修改文件访问和修改时间
touch file.txt

# 设置特定时间
touch -t 202401011200 file.txt

实用示例

示例1:检查文件

bash
#!/bin/bash

# 检查文件是否存在
if [ -f file.txt ]; then
    echo "文件存在"
else
    echo "文件不存在"
fi

示例2:检查目录

bash
#!/bin/bash

# 检查目录是否存在
if [ -d directory ]; then
    echo "目录存在"
else
    echo "目录不存在"
fi

示例3:检查权限

bash
#!/bin/bash

# 检查文件是否可读
if [ -r file.txt ]; then
    echo "文件可读"
else
    echo "文件不可读"
fi

# 检查文件是否可写
if [ -w file.txt ]; then
    echo "文件可写"
else
    echo "文件不可写"
fi

# 检查文件是否可执行
if [ -x file.txt ]; then
    echo "文件可执行"
else
    echo "文件不可执行"
fi

示例4:获取文件信息

bash
#!/bin/bash

# 获取文件信息
filename="file.txt"

if [ -f "$filename" ]; then
    echo "文件名: $filename"
    echo "文件大小: $(stat -c "%s" "$filename") 字节"
    echo "文件权限: $(stat -c "%a" "$filename")"
    echo "文件所有者: $(stat -c "%U" "$filename")"
    echo "文件组: $(stat -c "%G" "$filename")"
    echo "修改时间: $(stat -c "%y" "$filename")"
else
    echo "文件不存在: $filename"
fi

最佳实践

1. 使用 ls -l

bash
# 好的做法
ls -l file.txt

# 不好的做法
stat file.txt

2. 使用 stat

bash
# 好的做法
stat -c "%s" file.txt

# 不好的做法
ls -l file.txt | awk '{print $5}'

3. 使用条件判断

bash
# 好的做法
if [ -f file.txt ]; then
    echo "文件存在"
fi

# 不好的做法
ls file.txt > /dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "文件存在"
fi

总结

文件属性的关键点:

  1. 基本属性:使用 ls -lstat 查看
  2. 文件类型:使用 file 命令
  3. 文件权限:使用 chmod 修改
  4. 文件所有者:使用 chown 修改
  5. 文件大小:使用 ls -lhdu -sh 查看
  6. 文件时间:使用 touch 修改
  7. 实用示例:检查文件、检查目录、检查权限、获取文件信息
  8. 最佳实践:使用 ls -l、使用 stat、使用条件判断

下一节我们将学习文件权限的使用。