是否存在无效的 Linux 文件名?
- 2024-11-12 08:36:00
- admin 原创
- 24
问题描述:
如果我想创建一个保证不代表文件名的字符串,我可以在 Windows 上将以下字符之一放入其中:
/ : * ? | < >
例如
this-is-a-filename.png
?this-is-not.png
在 Linux 上有没有办法将字符串识别为“不可能是文件”?
解决方案 1:
几乎没有任何限制 - 除了'/'
和 之外' '
,您可以使用任何内容。但是,有些人认为允许这么大的灵活性并不是一个好主意。
解决方案 2:
空字符串是 Linux 上唯一真正无效的路径名,如果您只需要一个无效名称,那么它可能适合您。您还可以使用像“ ///foo
”这样的字符串,它不是规范的路径名,尽管它可以引用文件(“ /foo
”)。另一种可能性是像“ /dev/null/foo
”这样的字符串,因为/dev/null
它具有 POSIX 定义的非目录含义。如果您只需要不能引用常规文件的字符串,则可以使用“ /
”或“ .
”,因为它们始终是目录。
解决方案 3:
从技术上来说这并不违法,但文件名以破折号 (-) 开头的文件会给你带来很多麻烦。这是因为它与命令参数有冲突。
解决方案 4:
我个人发现很多时候问题不是出在 Linux 上而是出在 Linux 上使用的应用程序上。
以 Amarok 为例。最近我注意到,我从 Windows 机器上复制的某些艺术家没有出现在库中。我检查并确认文件在那里,然后我注意到文件夹名称(以艺术家命名)中的某些字符用奇怪的方块表示,而不是实际的字符。
在 shell 终端中,文件名看起来更加奇怪:/Music/Albums/Einst$'\374'rzende\ Neubauten 就是一个例子,说明它有多么奇怪。
虽然这些文件确实存在,但出于某种原因,Amarok 无法看到它们。我能够使用一些 shell 技巧将它们重命名为合理的版本,然后我可以使用 Musicbrainz Picard 用 ASCII 字符重新命名这些版本。不幸的是,在我重命名这些文件之前,Picard 也无法打开它们,因此需要一个 shell 脚本。
总的来说,这是一个棘手的领域,如果您尝试在 Windows 和 Linux 之间同步音乐收藏,其中某些文件夹或文件名包含奇怪的字符,这似乎会变得非常棘手。
最安全的做法是坚持使用仅 ASCII 的文件名。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件