linux下mount fat32 格式的磁盘不能创建大写文件夹或者磁盘中的原来的大写文件夹变成小写了

在Linux系统中,通过FTP上传到FAT32格式磁盘的全大写文件名会被转换为小写。这可能导致权限问题,如无法删除已存在的小写文件名文件。问题源于FAT32不支持大写敏感。解决方案是在挂载时使用`-t vfat -o shortname=mixed`选项,确保保留原始文件名大小写。例如,`mount -t vfat -o shortname=mixed /dev/usb/sda /mnt/usb1_1`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在项目中碰到这样一个问题,全大写文件名的问题通过ftp上传到ftp服务器上,名字改成了小写,但是大小写同时都有文件名的文件不会有问题,

至于全大写文件名的文件上传之后文件名被给成小写字母,有什么问题呢?

当时我们出现的问题是当我上传一个文件一半时,突然取消,之后想上传上去,就提示没有权限,通过抓包才知道是要先删除需要上传的文件,但是文件名早就改成小写了,

没办法删除,除非先将ftp服务器上的文件先删除掉,才能删除

导致这个问题的原因是FAT格式,可先通过fdisk -l 命令查看U盘的文件格式

# fdisk -l /dev/usb/sd/sda
sda   sda1
# fdisk -l /dev/usb/sd/sda


Disk /dev/usb/sd/sda: 8076 MB, 8076132352 bytes
255 heads, 63 sectors/track, 981 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


          Device Boot      Start         End      Blocks  Id System
/dev/usb/sd/sda1   *           1         982     7886816+  c Win95 FAT32 (LBA)
Partition 1 has different physical/logical endings:
     phys=(980, 254, 63) logical=(981, 221, 8)


修改的问题的方法:

其实方法也是在网上找的

举例:
mount(a,b,"vfat",0,"shortname=mixed")
等价于
mount -t vfat -o shortname=mixed a b


比方说我想将 /dev/usb/sda 挂载到/mnt/usb1_1上

mount -t vfat -o shortname=mixed /dev/usb/sda /mnt/usb1_1  

加上-t vfat -o shortname=mixed就可以了,其实还可以通过读取一个hotplug文件,来分析U盘的文件格式,这样就可以实现U盘自动挂载。

具体的等有时间在写。。。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值