看板 Linux 關於我們 聯絡資訊
假設有個檔案叫my_file, 路徑是: /home/user/a1/a2/a3/long_folder_name_1/long_folder_name_2/my_file 假設我在的路徑是 /home/user/b1/b2/b3/long_folder_name_3/long_folder_name_4 我想把my_file移到上一層路徑, 即變這樣 /home/user/a1/a2/a3/long_folder_name_1/my_file 通常我會這樣下指令 user@host:~/b1/b2/b3/long_folder_name_3/long_folder_name_4$ \ > mv ~/a1/a2/a3/long_folder_name_1/long_folder_name_2/my_file ~/a1/a2/a3/long_folder_name_1 想請問的是在bash上有沒有比較簡潔的寫法, 像是這樣(實際上不work, 我隨便舉例的): user@host:~/b1/b2/b3/long_folder_name_3/long_folder_name_4$ \ > mv ~/a1/a2/a3/long_folder_name_1/long_folder_name_2/my_file [1]/../.. 其中[1]表示mv的第一個變數 以上是第一個問題 第二個問題是 在termianl上處理長檔名/長路徑有用什麼奇技淫巧嗎? 除了比較常見的tab-completion/把路徑弄成alias之外的? 想聽聽大家的經驗 感謝回答~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.31.149
firejox:你把它寫成函式XD 08/27 22:32
firejox:把常用的長路徑做symbolic link 08/27 22:38
bitlife:我都用 * 字元,只要給得夠唯一性,展開後就是想要的目錄 08/27 22:38
看不太懂, 可以說詳細點嗎?
sppmg:mv $1 `dirname $1`/.. (寫成script取得路徑) 08/27 22:57
sppmg:或是用pushd 與popd切換目錄 08/27 22:58
sppmg:如果有很多檔要移,可以用find -exec echo {} \; 完成 08/27 22:59
ckclark:mv ~/a1/a2/a3..../long_folder_name_2/{myfile,../} 08/28 00:05
ckclark:用分配律XD 08/28 00:06
喔喔!!就是這個 感謝qq(不過跟分配律的關係是什麼呢??)
ckclark:a{b,c} 會展開成ab ac 08/28 02:02
ckclark:所以還有蠻多應用的 08/28 02:03
ckclark:(cd ~/a1/a2.../long_folder && mv myfile ..) 也可以 08/28 02:09
ckclark:不會動到working dir 08/28 02:10
開眼界了!!竟然有這些技巧 請問當初是怎麼學到的?
firejox:恩 bash說明裡有寫 .... 08/28 22:38
恩恩 找到了 有需要的人可以搜尋bash的man page: 分配律 => "Brace Expansion" (...) => "Compound Commands" ※ 編輯: Holocaust123 來自: 140.112.31.149 (08/29 11:08)