看板 Linux 關於我們 聯絡資訊
OS: WIN_10_x64 SHELL : Cmder 最近想學習使用 CLI 來取代 GUI 但是發現 mv 這個指令並沒有辦法使用 Regex 只能夠使用 wildcard match. 不過呢 wildcard 好像只能夠使用於 '不含有空白字元的檔案' mv -v foo_bar*.tar D:\ 可以成功執行 但倘若 foo_bar 之間的定界符號是'空格'的話 mv -v "foo bar*.tar" D:\ 就會回傳 mv: cannot stat 'foo bar*.tar': No such file or directory 我還上網查詢了一些資料 嘗試了以下等效的指令 但仍然都是失敗告終 mv -v "{foo bar}*.tar" D:\ mv -v "${foo bar}*.tar" D:\ mv -v -t D:\D\ `ls | grep -i -- "foo bar.*tar" 我知道解析 ls 不是一個好方法,但我還是想試試看能不能成功... 網路上查到的方法還有使用 find -exec 跟用 sh 的 for 疊代檔案名稱進去給 mv 但仍然想以比較直觀的方式來達成同樣的事情 想請問版上的高手能否解決這個問題 或者 ~ 有更簡單的方法或指令可以使用 !? 先在此謝謝各位回答的人 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.68.237 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1510995791.A.DAA.html ※ 編輯: leweir (39.10.68.237), 11/18/2017 17:07:21
chang505: 空格要用 \ 11/18 17:11
ChakraLinux: Wiki:跳脫字元 11/18 17:20
leweir: 感謝回答 我知道跳脫字元 但是是放在 雙引號 裡面嗎? 11/18 17:27
leweir: 一樣是回傳錯誤 mv -v "foo\sbar*.tar" D:\D 一樣是錯誤 11/18 17:28
ckc1ark: *在雙引號內就失去wildcard的作用了 11/18 17:36
ckc1ark: 你可以試 "foo bar"*.tar 或是foo\ bar*.tar 11/18 17:37
leweir: 回 ckclark 大大 一樣是報錯 是說 mv 這個指令沒有完備性 11/18 17:53
leweir: \ ,\s 這兩者都無法在雙括號內辨識成空格 11/18 17:54
hijkxyzuw: 在 windows 裡反斜線不是目錄嗎?不知道 cmder 怎麼作 11/18 19:00
ckc1ark: 至少第一種可以 https://i.imgur.com/Lengp3O.png 11/18 20:04
bitlife: Windows Subsystem for Linux? 11/18 20:45
leweir: 回 ckclark 大大, 抱歉! 我因為副檔名打錯 導致你說的方法 11/18 21:17
leweir: 都回報錯誤 經過測試是可以的 ! 感謝您 ! 11/18 21:17
leweir: 回 bitlife 我是使用 WIN_10 然後終端用 cmder ! 11/18 21:28
leweir: 正確指令: "foo bar"*.tar 11/18 21:28
newversion: windows 推廌cygwin 11/19 17:16
galic: cmder可以包cygwin terminal, https://tinyurl.com/zzvs6sk 11/19 23:05
newversion: cygwin下打 mv -v foo_bar*.tar /cygdrive/D/ 11/20 02:53