最近我遇到了一个问题,当我的脚本通过tar将临时文件提取到用户选择的文件夹中时。
问题是,如果该文件夹位于带有exfat
文件系统的U盘上,则提取的文件会丢失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
权限不兼容的文件系统的列表,我确信我的列表远远不够完整,因为存在几十个可能有相同问题的外来文件系统。
那么,有没有更好的方法来测试一个文件夹是否支持权限,而不需要先写一个文件呢?如果没有,我应该在这个列表中添加什么文件系统来使它更完整呢?
1条答案
按热度按时间2vuwiymt1#
可以检查是否可以更改写权限并使其成为一个函数:
字符串