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议我删除前导和尾随空格,我打算只是因为通常用户不意味着有前/后空格。 什么样的问题序列可能会存在,我应该考虑什么序列不允许? 为了方便起见,我也考虑不允许在窗口中使用非法字符。 我想我可能不允许破折号(破折号是一个合法的窗口字符)

.NET的安全/允许的文件名清理

是否有任何标准化/图书馆/testing的方式来取得一个任意的string,并以这种方式,它代表一个有效的文件名称? 滚动我自己的char-replace函数是很容易的,但是我想要一些更强大和更重要的东西。

在Python中获取短path

如何在Windows中使用python获取文件的短path? 我正在使用下面的代码, #!/usr/bin/python import os import sys fileList = [] rootdir = sys.argv[1] for root, subFolders, files in os.walk(rootdir): for file in files: fileList.append(os.path.join(root,file)) for File in fileList: print File

如何在Perl中编写一个* filename *包含utf8字符的文件?

我正在努力创build一个包含非ASCII字符的文件。 如果以0作为参数调用下面的脚本,但使用1调用时会死亡。 错误消息已打开:C:\ temp \ filename.pl第15行中的参数无效。 该脚本在cmd.exe启动。 我期望它写一个文件的名字是(取决于参数) äöü.txt或äöü☺.txt 。 但我无法创build包含笑脸的文件名。 use warnings; use strict; use Encode 'encode'; # Text is stored in utf8 within *this* file. use utf8; my $with_smiley = $ARGV[0]; my $filename = 'äöü' . ($with_smiley ? '☺' : '' ). '.txt'; open (my $fh, '>', encode('cp1252', $filename)) or die "open: $!"; […]

是否可以在文件名中使用“/”?

我知道这不是应该做的事情,但有没有办法使用斜杠字符,通常在Linux中分隔文件名中的目录?

使用包含空格的文件名的GNUMake最可靠的方法是什么?

我想用GNUMake来运行一个基于规则的makefile,它在目录结构(在Windows文件系统上)中build立一组C文件。 根目录,一些子目录和一些文件包含空格。 示例文件: "C:\Documents and Settings\<username>\My Documents\Test Dir\Build Me.c" 当文件path包含空格时,GNUMake不起作用。 我已经读过解决这个问题的可能方法(从我的文件名中删除空格,使用8.3格式,用?或\\等replace空格),但没有一个是完美的(或者它们是什么? 有没有解决这个问题的银弹? 顺便说一句,我坚持与GNUMake,我不能使用不同的制造工具。