藥劑1.3.2爲什麼我不能用Tilde刪除文件?
二郎山/ OTP 19
的Windows 7(標準用戶和管理員)
我試圖破解在一起的小藥劑腳本環繞commiting文件與git。我做的第一件事是爲了確保我不會意外地創建由emacs創建的臨時文件,它是File.rm(「*〜」)。然而,這是我得到的:
iex(2)> File.rm("*~")
{:error, :eio}
所以我試了File.rm("*.*~")
。同樣的結果。當我以標準用戶身份運行(這是我通常在Windows上工作時)或作爲管理員運行時,我會得到相同的行爲,因此它似乎也沒有任何權限。
於是我將這些文件捕獲到列表中。
iex(15)> {:ok,files} = File.ls
{:ok,
[".git", ".gitattributes", ".gitignore", "add.factor", "async_ut",
"async_ut.cs", "cng_maint", "codecvg.cmd", "codecvg_rkt.cmd",
"codecvg_rkt.cmd~", "CreateBr.vbs", "DevSandbox", "distillery", "dk.cmd",
"example.scm", "example.sql", "factor", "fsele", "fsharp", "glp.vbs",
"lwwtww.org", "mrgmain.cmd", "MrgMain.vbs", "mrgtrunk.cmd", "mrgtrunk.cmd~",
(截斷以節省空間)
我可以檢查包含~
列表中的字符串,它回來真的。所以我並沒有想象那裏會出現波浪。
我在目錄中創建了一個名爲test.txt
的臨時文件。 File.rm
刪除那一個就好了,所以它似乎是有關~
這是造成這個問題的東西。我也試過這些:
iex(7)> File.rm("*\~")
{:error, :eio}
iex(8)> File.rm("*\7F") #7F is hex code of ~
{:error, :eio}
沒有運氣,你可以看到。
用Elixir和File.rm搜索任何關於:eio
的東西都沒有任何幫助。我可以嘗試安裝1.4.0,看看是否有效果,但我只想看看我是否在這裏丟失了一些愚蠢而明顯的東西。
我也有cygwin在機器上,所以我試圖刪除文件的方式。 rm *~
完全按照預期工作(在標準用戶下)。
看起來好像這是某種Erlang特定的問題,但我先在這裏起了作用。我做了什麼明顯錯誤?
'Path.wildcard(「*〜」)|> Enum.each(&File.rm/1)''? '*'不會被'File.rm/1'擴展。 – Dogbert
嗯。沒有意識到File.rm不會擴展通配符。這是否記錄在某處,我在研究它時錯過了它? –
那麼,我會考慮沒有記錄的意思,它不會被擴大。 – Dogbert