最近,当我的脚本通过tar将临时文件提取到用户 Select 的文件夹时,我遇到了一个问题.
问题是,如果该文件夹位于包含exfat
个文件系统USB闪存盘上,则提取的文件会丢失ext4
和btrfs
文件系统与每个文件一起存储的权限信息.
为了解决这个问题,我创建了以下修复程序:
#!/usr/bin/env bash
FOLDER="/example"
FS=$(stat -f -c %T "$FOLDER")
if [[ "$FS" == "fat"* || "$FS" == "vfat"* || "$FS" == "exfat"* || "$FS" == "ntfs"* || "$FS" == "fuse"* || "$FS" == "msdos"* ]]; then
echo "Unsupported filesystem!"
exit
fi
虽然这是可行的,但它要求我保留一个列表,列出哪些文件系统与ext4
个权限不兼容,我敢肯定我的列表还远远不完整.因为存在数十个可能存在相同问题的外来文件系统.
那么,有没有更好的方法来测试文件夹是否支持权限,而不必真正先写入文件?如果没有,我应该将哪些文件系统添加到此列表中以使其更加完整?