Articles of 文件名

Shell脚本问题,包含空格的文件名

我知道处理文件名空间的一种方法是用单引号括起文件名:“'”。 为什么下面的代码叫做“echo.sh”,在包含带空格的文件名的目录下工作,但程序“ls.sh”不起作用,唯一的区别是'echo'被'ls'replace? echo.sh #!/bin/sh for f in * do echo "'$f'" done 生产 : 'ABC' “高清” 'echo.sh' 'ls.sh' 但是,“ls.sh”失败: #!/bin/sh for f in * do ls "'$f'" done 生产 : ls:不能访问'ab c':没有这样的文件或目录 ls:不能访问'de f':没有这样的文件或目录 ls:不能访问'echo.sh':没有这样的文件或目录 ls:不能访问'ls.sh':没有这样的文件或目录

自动将linux文件名重命名为在Windows中合法的新文件名

我想将一个linux文件重命名为在Windows中合法的文件名。 它不应该超过允许的时间,不应该有窗口中不允许的字符。 有时我把文件的标题复制到一个文件名,并且有特殊的字符如– , ®或? 在从pdf复制和粘贴标题时,有时会在某些行的末尾出现某些字符。 在使用sed -n'l'时可以看到它们: echo 'Estrogen receptor agonists and estrogen attenuate TNF-α induced α apoptosis in VSC4.1 motoneurons.pdf' | sed -n 'l' Estrogen receptor agonists and estrogen attenuate TNF-\316\261 induce\ d$ \316\261$ apoptosis in VSC4.1 motoneurons.pdf$ 要么 echo 'A synthetic review of the five molecular Sorlie's subtypes in breast cancer' | […]

用这个bash文件名提取技术?

我有一个bash脚本的一部分,得到一个没有扩展名的文件名,但我试图了解这里真正发生了什么。 什么是“%%”? 有人可以详细说明bash在幕后做了什么吗? 这种技术如何在一般基础上使用? #!/bin/bash for src in *.tif do txt=${src%%.*} tesseract ${src} ${txt} done

创build新文件,但如果文件名已存在于bash中,则添加数字

我发现了类似的问题,但不是在Linux / Bash中 我想我的脚本创build一个给定名称的文件(通过用户input),但如果文件名已经存在,最后添加数字。 例: $ create somefile Created "somefile.ext" $ create somefile Created "somefile-2.ext" 谢谢阅读

我不应该允许在文件名中使用什么字符序列?

在testing之后,我发现linux允许除了/和null( \0 )之外的文件名中的任何字符。 那么我应该在文件名中不允许使用哪个序列? 我听说一个领先的-可能会混淆一些命令行程序,这对我来说并不重要,但如果他们决定收集一堆文件并用一些GNU程序过滤它,可能会困扰其他人。 有人build议我删除前导和尾随空格,我打算只是因为通常用户不意味着有前/后空格。 什么样的问题序列可能会存在,我应该考虑什么序列不允许? 为了方便起见,我也考虑不允许在窗口中使用非法字符。 我想我可能不允许破折号(破折号是一个合法的窗口字符)

如何用文件名中的冒号克隆文件

当我使用msysgit克隆回购时,文件名中包含空格的所有文件都不会被取消,然后在状态中显示为已删除。 文件名看起来像这样: styles-ie (1:12:11 6:02 PM).css所以它实际上可能是冒号或括号? 我怎样才能获取这些文件,使我的本地回购内联的起源?

在Python中处理UTF文件名

我已经阅读了相当多的话题,包括什么似乎是这方面的权威指南: http : //docs.python.org/howto/unicode.html 也许对于一个更有经验的开发者来说,那个指南可能就够了 但是,就我而言,我比起初我更困惑,仍然没有解决我的问题。 我正在尝试使用os.walk()读取文件名,并在将该信息写入文本文件之前获取有关这些文件的某些信息(如文件大小)。 这个工作,只要我没有遇到任何与utf编码的文件名的文件。 当它用utf编码的名字命中一个文件时,我得到这样一个错误: WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'Documents\\??.txt' 在这种情况下,该文件被命名为唽咿.txt。 以下是我迄今为止一直试图做的事情: for (root, dirs, files) in os.walk(dirpath): for filename in files: filepath = os.path.join(root, filename) filesize = os.stat(filepath).st_size file = open(filepath, 'rb') stuff = get_stuff(filesize, file) file.close() 在这种情况下,dirpath来自代码的较早部分,这相当于'dirpath = raw_input()'。 我已经尝试了各种东西,如更改filepath行到: […]

用批处理脚本中的时间戳生成唯一的文件名

在我的.bat文件中,我想根据date时间为文件/目录生成一个唯一的名称。 例如 Build-2009-10-29-10-59-00 问题在于%TIME%不会执行,因为它包含文件名非法的字符(例如':')。 在batch file中是否有像'tr'的东西? 任何其他的想法如何解决这个问题(除了批解释器不需要额外的命令行工具)?

Python函数使任意string有效的文件名

有没有一个内置的function,从string中去除不能在Windows文件名中的所有字符或以某种方式replace它们? 例如function("Some:unicode\symbols") – > "Some-unicode-symbols"

如何从任意string中创build一个有效的Windows文件名?

我有一个像“Foo:Bar”这样的string,我想用它作为文件名,但在Windows上,文件名中不允许使用“:”字符。 有没有办法将“Foo:Bar”变成“Foo- Bar”之类的东西?