今天我也碰到了同样的问题,原因其实很简单,windows系统的文件夹不区分大小写,而linux是区分大小写的。比如文件夹L和文件夹l,在windows下不允许同时存在,为了区分他们两,就只能把文件夹名称改为ascii码了。
我的解决方式是用gpt搓一个powershell脚本,先统一把ascii码文件夹重新命名成abcd之类的,然后再把没能成功命名的文件夹里面的内容手动拷贝到对应的文件夹内,比如61里面的东西拷贝到A,6c里面的文件拷贝到L,就成功通过了terminfo部分的编译。
脚本指令如下:
Get-ChildItem -Directory | Sort-Object { $_.Name.Length } -Descending | ForEach-Object {
$folderName = $_.Name
if ($folderName -match '^[0-9A-Fa-f]+$') {
$decimalValue = [Convert]::ToInt32($folderName, 16)
$newName = [char]$decimalValue
if ($newName -match '[\\/:*?"<>|]') {
Write-Host "Skipping folder $folderName because the new name contains illegal characters."
} else {
Rename-Item $_.FullName -NewName $newName
Write-Host "Renamed folder $folderName to $newName"
}
}
}