最近在项目中碰到这样一个问题,全大写文件名的问题通过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盘自动挂载。
具体的等有时间在写。。。。。
在Linux系统中,通过FTP上传到FAT32格式磁盘的全大写文件名会被转换为小写。这可能导致权限问题,如无法删除已存在的小写文件名文件。问题源于FAT32不支持大写敏感。解决方案是在挂载时使用`-t vfat -o shortname=mixed`选项,确保保留原始文件名大小写。例如,`mount -t vfat -o shortname=mixed /dev/usb/sda /mnt/usb1_1`。
256

被折叠的 条评论
为什么被折叠?



