【问题标题】:Invalid character at the end of Folder name文件夹名称末尾的无效字符
【发布时间】:2017-01-25 11:45:34
【问题描述】:

我使用的是 RHEL 7。以前我使用的是 5.5。 我们有一个由proftp 和mysql 配置的大型FTP 服务器。

问题是,我需要获取文件夹名称并为新服务器创建相同的文件夹。

我的做法如下:

ls > /abc/folders.txt

然后我将 txt 文件移动到新服务器并使用以下脚本

#!/bin/bash

N=0
cat folders.txt | while read LINE ; do
        N=$((N+1))
        mkdir /ftp/FTP/$LINE
done

它正在创建文件夹,但所有文件夹都有一个“?”最后如下:

zhl?
heing?                          zieha?
hvejen?                        ziga?
hellgrafisk?                  zinernagel?

它在 RHEL 5.5 上运行良好。如何解决?

【问题讨论】:

  • 您可能在folders.txt 中有MS-DOS (CR+LF) 行结尾,所以当您阅读每一行时,您会得到一个杂散的CR 字符。修正你的行尾,你应该没问题。
  • 你查看folders.txt的内容了吗?看起来不错吗?您是否尝试echo $LINE 来检查变量本身是否包含无效字符?
  • Paul - 感谢您的建议 - 是的,有流浪字符 - 无法手动删除 1556 个条目。 :( 赛斯 - 我检查了几次文件 - 只有杂散字符 - 没有别的。

标签: linux ftp


【解决方案1】:

您可能在行尾有一些不可打印的字符(例如,来自 Windows 的 CRLF),运行:

cat -A folders.txt

在远程机器上,它会显示脚本中的所有字符。然后,就可以转换成类unix格式运行了

dos2unix folders.txt

【讨论】:

    最近更新 更多