[問題] 如何使用 mv 指令處理多個檔案

作者: leweir (LeWeir)   2017-11-18 17:03:06
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
作者: chang505 (眼線)   2017-11-18 17:11:00
空格要用 \
作者: ChakraLinux (GNU/Chakra Project)   2017-11-18 17:20:00
Wiki:跳脫字元
作者: leweir (LeWeir)   2017-11-18 17:27:00
感謝回答 我知道跳脫字元 但是是放在 雙引號 裡面嗎?一樣是回傳錯誤 mv -v "foo\sbar*.tar" D:\D 一樣是錯誤
作者: ckc1ark (偽物)   2017-11-18 17:36:00
*在雙引號內就失去wildcard的作用了你可以試 "foo bar"*.tar 或是foo\ bar*.tar
作者: leweir (LeWeir)   2017-11-18 17:53:00
回 ckclark 大大 一樣是報錯 是說 mv 這個指令沒有完備性\ ,\s 這兩者都無法在雙括號內辨識成空格
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-11-18 19:00:00
在 windows 裡反斜線不是目錄嗎?不知道 cmder 怎麼作
作者: ckc1ark (偽物)   2017-11-18 20:04:00
至少第一種可以 https://i.imgur.com/Lengp3O.png
作者: bitlife (BIT一生)   2017-11-18 20:45:00
Windows Subsystem for Linux?
作者: leweir (LeWeir)   2017-11-18 21:17:00
回 ckclark 大大, 抱歉! 我因為副檔名打錯 導致你說的方法都回報錯誤 經過測試是可以的 ! 感謝您 !回 bitlife 我是使用 WIN_10 然後終端用 cmder !正確指令: "foo bar"*.tar
作者: newversion (海納百川)   2017-11-19 17:16:00
windows 推廌cygwin
作者: galic (嘎利)   2017-11-19 23:05:00
cmder可以包cygwin terminal, https://tinyurl.com/zzvs6sk
作者: newversion (海納百川)   2017-11-20 02:53:00
cygwin下打 mv -v foo_bar*.tar /cygdrive/D/

Links booklink

Contact Us: admin [ a t ] ucptt.com