有没有无效的linux文件名?

izb*_*izb 49 linux windows filesystems filenames file

如果我想创建一个保证不代表文件名的字符串,我可以在Windows上放入以下字符之一:

\ / : * ? | < >
Run Code Online (Sandbox Code Playgroud)

例如

this-is-a-filename.png

?this-is-not.png
Run Code Online (Sandbox Code Playgroud)

有没有办法在Linux上将字符串标识为"不太可能是文件"?

Vin*_*jip 43

几乎没有任何限制 - 除了'/''\0',你被允许使用任何东西.但是,有些人认为允许这么大的灵活性并不是一个好主意.

  • +它可能取决于正在使用的文件系统. (5认同)
  • 我实际上认为至少有些文件系统可能支持`NUL`. (3认同)
  • 轶事 - 我已经处理了包括“\0”在内的文件名的噩梦,它使“xargs -0”变得糟糕 (2认同)
  • 所以`.`和`..`是合法的文件名? (2认同)

mar*_*k4o 16

空字符串是Linux上唯一真正无效的路径名,如果您只需要一个无效名称,它可能适用于您.你也可以使用像" ///foo" 这样的字符串,它不是规范的路径名,尽管它可以引用文件(" /foo").另一种可能性是" /dev/null/foo",因为/dev/null它具有POSIX定义的非目录含义.如果您只需要无法引用常规文件的字符串,则可以使用" /"或" .",因为这些字符串始终是目录.

  • ➕1 很聪明,把`/dev/null/` 当作一个目录! (2认同)