查找文件系统中的长文件名文件
向OOS等对象存储转移数据的时候,因为文件系统兼容性的问题,最好处理掉那些文件名长度大于255的文件,以免出现转移失败的情况
Windows下可以使用Powershell的Get-ChildItem命令方式
Get-ChildItem -r * # 获取文件夹下所有对象
{$_.GetType().Name -match”File” } #获取文件类型的名称
{$_.fullname.length -ge 256} # 文件名长度大于等于256的文件
%{$_.fullname} #打印文件名
Get-ChildItem -r * |? {$_.GetType().Name -match"File" } |? {$_.fullname.length -ge 256} |%{$_.fullname}
linux直接利用 length属性即可
find. -type f | awk 'length> 255'> longfilename-list.txt
附各文件系统的最大文件名长度
文件系统 | 最大文件名长度 | 最大文件大小 | 最大分区大小 |
---|---|---|---|
ext2 | 255 bytes | 2 TB | 16 TB |
ext3 | 255 bytes | 2 TB | 16 TB |
ext4 | 255 bytes | 16 TB | 1 EB |
XFS | 255 bytes | 8 EB | 8 EB |
Btrfs | 255 bytes | 16 EB | 16 EB |
参考
https://stackoverflow.com/q/12697259/614863
https://www.helplib.com/diannao/article_172660
https://blog.csdn.net/baixiaokanglili/article/details/78804991