抱歉,如果在其他地方都可以找到答案,我不知道如何搜索我的问题。
我在redhat linux HPC服务器上运行了一些模拟,而我用于处理文件夹结构以保存输出的代码有一个不幸的错误。我创建文件夹的matlab代码是:
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
在哪里sp.run_number
是整数。我忘了将其转换为字符串,但是由于某种原因mkdir(folder);
(在matlab中)运行仍然成功。实际上,模拟运行顺利,数据已保存到匹配目录。
现在,当查询/打印文件夹结构时,出现以下情况:
- 当我尝试标签自动完成时:
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/
- 当我使用
ls
:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?
。 - 当我使用rsync传输到我的mac时,该
--progress
选项显示:run_\#003/
等(与我假设)匹配的数字与sp.run_number
填充的整数匹配为三位数,因此第10次运行是run_\#010/
- 当我在finder中查看文件夹时
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_?
- 查看此问题并使用命令,
ls | LC_ALL=C sed -n l
我得到:
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
我无法cd
使用任何这些表示形式进入文件夹。
我有成千上万个这样的文件夹,因此需要使用脚本来解决。这些选项中的哪一个是文件夹的正确表示形式?如何以编程方式引用这些文件夹,以便使用bash脚本使用正确格式的名称重命名它们?而且我想出于好奇,这到底是怎么发生的?
run_
足够的帮助,我必须输入一些内容
/
。任何其他字符都是有效的,包括控制字符。我不知道如果sp.run_number为0(可能run_
因为错误而中止或产生,因为NUL字节将终止目录名称字符串),matlab会怎么做。当然,这对于其中具有NUL字节的16位(或更高)值也将是有问题的,并且还会根据运行matlab的系统的字节序而变化。
^A
没有从字面上^
其次A
,但按Ctrl-A(可以用Ctrl-V CTRL-A键入它自Ctrl-A键通常是用于壳的快捷方式)。