把檔案移到上一層資料夾 - Linux

Table of Contents

假設有個檔案叫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之外的?

想聽聽大家的經驗 感謝回答~

--

All Comments

Skylar DavisLinda avatarSkylar DavisLinda2011-09-01
你把它寫成函式XD
Lily avatarLily2011-09-02
把常用的長路徑做symbolic link
Jacky avatarJacky2011-09-07
我都用 * 字元,只要給得夠唯一性,展開後就是想要的目錄
Olga avatarOlga2011-09-09
mv $1 `dirname $1`/.. (寫成script取得路徑)
Mia avatarMia2011-09-10
或是用pushd 與popd切換目錄
Edward Lewis avatarEdward Lewis2011-09-10
如果有很多檔要移,可以用find -exec echo {} \; 完成
Margaret avatarMargaret2011-09-11
mv ~/a1/a2/a3..../long_folder_name_2/{myfile,../}
Lily avatarLily2011-09-12
用分配律XD
Faithe avatarFaithe2011-09-16
a{b,c} 會展開成ab ac
Skylar Davis avatarSkylar Davis2011-09-20
所以還有蠻多應用的
Zenobia avatarZenobia2011-09-21
(cd ~/a1/a2.../long_folder && mv myfile ..) 也可以
Victoria avatarVictoria2011-09-22
不會動到working dir
Caitlin avatarCaitlin2011-09-23
恩 bash說明裡有寫 ....