rsync
用户有一个使用, 到外部设备的(增量)备份脚本。这是他拥有的 SSD 上的错误。原来他的设备被格式化了exFAT
。这意味着我需要在脚本中检测到这一点,因为我需要将选项更改为rsync
(例如,exFAT 无法处理符号链接、没有所有者/组权限等)。
用户正在运行 Linux Mint。我运行 Ubuntu。我只能假设/希望我的 Ubuntu 的解决方案适用于他的 Mint。
我看过:
- 我如何知道一个分区是 ext2、ext3 还是 ext4?
- 如何判断您使用的是哪种类型的文件系统?
- https://www.tecmint.com/find-linux-filesystem-type/
那里有很多好的建议,但我没有看到一个符合我要求的,它们是:
- 必须明确报告(可解析)
ntfs
/exfat
,而不仅仅是说fuseblk
(对于exfat
&ntfs
,我需要区分)。 - 不得要求sudo。_
- 必须从文件系统上的目录路径开始可执行(可以假设它将被挂载),而不仅仅是从
/dev/...
.
根据我尝试过的建议:
fdisk -l
,parted -l
,file -sL
: 需要sudo和/或/dev/...
块设备mount
: 需要/dev/...
,只报告fuseblk
df -T
,stat -f -c %T
: 接受目录,但只报告fuseblk
lsblk -f
,blkid
: 需要/dev/...
块设备
是否有一个满足所有这些标准的简单命令?或者,lsblk
/blkid
似乎正确地报告了exfat
/ ntfs
,如果我需要将它们传递给/dev
我如何从脚本中的目录路径中适当地获取它?
感谢其他海报的回复/建议。这是我的完整解决方案。
df -P
可用于从路径获取设备,并可lsblk --fs
用于获取准确的文件系统。所以一个单行是:如果您只需要知道文件系统是
fuseblk
--- 它涵盖了ntfs
&exfat
并且最终证明足以满足我的目的--- 这可以通过更简单的方法来确定:我不确定我是否完全遵循您的问题,因此我将其作为“出发点”。如果它让你接近,我相信你可以调整它以获得你需要的东西:
df .
和mount
?_首先让我们获取挂载点
$mp
同时保持设备名称隐藏/a/dir
现在,挂载点
这应该返回安装类型(无论是
xfs
,etx3
, ...)编辑:
$5