在linux shell脚本生成文本文件时,我遇到了一个相当奇怪的问题.情况是这样的:
在我的Synology Disk Station上,我正在执行一个sh脚本.它使用只读SQL用户访问本地mySQL数据库.有多个呼叫(每个呼叫一行),每个呼叫将接收的输出写入不同位置的.csv文件.
.sh脚本如下所示:
/some/path/create_lists.sh
mysql --arguments < /path/to/script1.sql > /path/to/outfile1.csv
mysql --arguments < /path/to/script2.sql > /path/to/outfile2.csv
mysql --arguments < /path/to/script3.sql > /path/to/outfile3.csv
mysql --arguments < /path/to/script4.sql > /path/to/outfile4.csv
Run Code Online (Sandbox Code Playgroud)
使用我的Windows PC我想访问这些文件.
原则上,这已经工作正常,但不知何故只有最后创建的.csv文件可以直接被MS Excel读取.在上面的示例中,outfile4.csv将是唯一可读的文件.在交换第3行和第4行时,outfile3.csv是可读的.对于outfile4.csv,将创建一个具有完全相同名称的新文件,MS Excel无法打开该文件.但Notepad ++能够打开它.
它在Windows资源管理器中看起来像这样:
\\myNAS\path\to
outfile4.csv (working)
outfile4.csv (not working)
Run Code Online (Sandbox Code Playgroud)
怎么会有两个同名的文件?一个正在工作而另一个没有?
在 DSM6.1 更新后尝试加密家庭共享时,我收到一条消息,指出存在文件名超过 143 个字符的文件。这是加密 Synology 共享中文件名的最大长度。
因为家庭共享中有很多东西(主要是我自己的),所以手动搜索文件是不切实际的。不过这些文件必须被删除或重命名,允许共享的加密。
我需要一种自动方式来查找所有子目录中文件名超过 143 个字符的所有文件。使用 Windows 工具通过网络共享搜索文件可能会花费太长时间。
我自己找到了解决方案(虽然通过一些互联网研究,因为我仍然是 n00b)并想与您分享,以便有同样问题的人可以从中受益。