如何建立尾隨空格的目錄?

如何建立尾隨空格的目錄?

我使用的是 Windows 7,由於我無法控制的原因,需要建立以單一空格結尾的目錄。它將包含各種檔案和子目錄。

我嘗試過mdand rename,也使用 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"

您將需要引號。

請參閱此以了解如何刪除

相關內容