如何创建带有尾随空格的目录?

如何创建带有尾随空格的目录?

我使用的是 Windows 7,由于一些不可控的原因,我需要创建一个以单个空格结尾的目录。它将包含各种文件和子目录。

我尝试过mdrename,也使用 UNC 路径,但失败了,要么给出“不正确的语法”,要么更常见的是,只是忽略了空格。

我该怎么做?

答案1

要在 Windows 中创建带有尾随空格字符的目录,请调出命令提示符并输入以下内容:

md "\\?\C:\mydirectory "

该目录必须是绝对(非相对)目录,并且必须以\\?\

类似地,你可以使用 rd 命令删除目录

rd "\\?\C:\mydirectory "

但使用此命令删除目录之前,目录必须是空的。

答案2

cygwin 可以

$ mkdir 'abcde'

$ mkdir 'abcde '

$ mkdir 'abcde  '

$ ls -l
total 0
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde

好吧,这显然是可行的,因为我们有 3 个不同的目录,但让我们尝试获取进一步的证明

$ echo * | xxd
0000000: 6162 6364 6520 6162 6364 6520 2061 6263  abcde abcde  abc
0000010: 6465 2020 0a                             de  .

6162 6364 65 20<---- that's the dir abcde, and echo * put a space in after as there is another item it lists.

6162 6364 6520 20 <-- that's the dir 'abcde ', and echo * displayed it with a space in as there is another item it lists

61 62636465 2020 0a  <-- that's the dir 'abcde  ', and echo * displayed it followed by new line(0a)

其他

ls 提供了一些格式化选项,例如 verical 和其他格式,例如逗号

--format=WORD
       across -x, commas -m, horizontal -x, long -l, single-column  -1,
       verbose -l, vertical -C

--

$ ls -m
abcde, abcde , abcde

注意逗号前面的空格,这是因为空格在文件名中。',' 是格式化。但 ',' 表示空格在文件名中。

$ ls -m | xxd
0000000: 6162 6364 652c 2061 6263 6465 202c 2061  abcde, abcde , a
0000010: 6263 6465 2020 0a                        bcde  .

--

一个非常清楚的证明,不需要看任何十六进制来验证,是-

$ mkdir 'abcde           '


$ mkdir z


$ ls -m
abcde, abcde , abcde  , abcde           , z


$

另一种方式,正如 Mafu 在评论中提到的,是 Mingw,它有一个 Msys 包,你可以在 ming mackage 管理器中安装,msys 会安装许多命令,例如C:\MinGW\msys\1.0\bin>mkdir.exe,还有一个 bash.exe

答案3

请注意,创建 Windows 不支持的文件可能会导致您无法通过正常方式删除它的情况。

启动 Linux 安装或 Live CD,然后运行此命令

mkdir "<mountpoint>/dirname"

您将需要引号。

请参阅此内容以了解如何删除

相关内容