在昨天之前,我只使用小写字母、数字、点 ( .) 和下划线 ( _) 来命名目录和文件。
今天我想开始使用更多的特殊字符。哪些是安全的(安全是指我永远不会有任何问题)?
ps:我不敢相信这个网站上还没有人问过这个问题,但我搜索了“命名”这个词并阅读了规范问题,但没有成功(大多数都是关于计算机名称)。
编辑 #1 :(顺便说一句,我不使用大写字母作为文件名。我不记得为什么。但是几个月以来,我遇到了大写字母的生产问题:某些操作系统不支持 ascii!)
这是昨天在工作中发生的事情: 像往常一样,我必须创建一个自签名 SSL 证书。像往常一样,我使用文件的网站名称:www2.example.com.key www2.example.com.crt www2.example.com.csr。
那么问题来了:生成通配符自签名证书。我这样做了,并将文件命名为 example.com.key example.com.crt example.com.csr,这是一种误导(它是 *.example.com 的证书)。
我回到家,开始在 apache 配置文件的文件名中添加一些星星,看看它是否有效(在无用的家用计算机上,甚至没有延迟)。
文件名中的星号真的让我害怕:一些同事/供应商/...可以使用 rm find xarg 执行一些脚本,这会导致http://www.ucs.cam.ac.uk/support/unix-support/misc/恐怖,并且已经有一个答案谈到了灾难。
编辑#2:
只是认为:不需要逃避。任何人都知道为什么它不在文件名中使用?
编辑#3:
让我们总结一下我到目前为止的理解:
所有其他的呢,比如%或=?
听起来像是灾难的秘诀。
您可以使用除/- 之外的任何内容,但您可能希望用单引号 ( ')括起来以避免执行特殊字符。
例如。 $*`\|
在文件名中使用特殊字符在很大程度上是一种 Windows主义- 主要来自 GUI 机器管理与命令行(它不适合不断地转义文件名)。
最安全的方法就是坚持 a-zA-Z0-9_.