作者HowLeeHi (處處留心皆正妹)
看板Linux
標題[問題] 請問怎麼更改「-」開頭的檔案名稱...
時間Thu Jun 3 02:27:53 2010
hi,all
今天手殘在win下把一些檔案DSCN9954.jpg等等的檔名前面加上dash符號「-」後,
變成 -DSCN9954.jpg 後,用sftp傳到linux系統下後,麻煩就開始了XD
跑到linux下用文字操作一直找不到這個檔案, :(
系統沒有裝 emacs 所以一切純指令操作..
我試了一些指令都不行,像
mv *.jpg new_folder
mv \-*.jpg new_folder
ls *.jpg
ls *99*
用single quote單引號 ''來括住也不行
這些外部指令似乎會去parsing 檔名前面的 「-」 符號
會把檔名前的 -D 視為 option (如果是這樣,感覺有點危險)
除了用 echo 指令來列出檔名可以成功以外,目前還想不到方法
我用
echo -*
可以來列出檔名
接著我用 command substitution 來改名也宣告失敗
mv `echo -DSCN9954.*` 1.jpg
把echo結果輸出到文字檔後,也試過寫成shell script來改檔名也不行...
最後我只想到應該可用 emacs 或
很囧的一招方法..
sftp進localhost,再用sftp裡面的rename指令來改檔名(最後是成功了...)
請問有別的想法嗎??
thanks!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.233.74
※ 編輯: HowLeeHi 來自: 59.112.233.74 (06/03 02:37)
→ hpo14:雙引號 "檔名" 06/03 02:50
推 ckclark:./-xxxx 亦可 06/03 02:56
推 ckclark:你可以用set -x看這些*代換後 指令會長怎樣 還蠻有趣的 06/03 03:00
→ ckclark:或是使用mv -- -xxxx 代表--之後的都不是option 06/03 03:02
→ HowLeeHi:非常感謝h大和c大,不過我試了雙引號後也是不行耶 06/03 11:07
→ HowLeeHi:我的bash version是2.05b.0(1) 06/03 11:08
→ imcar:find -inum xxx -exec mv {} ./oo \; 利用inode 06/03 12:20
→ HowLeeHi:哦,原來可以用inode把找到後的./檔名丟給mv這招,非常感謝 06/05 02:17