Bash
將文件複製到與源相同的路徑而不更改目錄
假設我在某個目錄(例如 home)下有這樣的路徑:
~/mydir/subdir/file1
,並且我想製作file1的副本:我們可以從主目錄執行此操作:
cp ~/mydir/subdir/file1 ~/mydir/subdir/file2
是否有一個快捷方式表示“在與源相同的路徑中”,所以我不必
mydir/subdir
再次重複該部分,就像.
目前目錄一樣?或者另一種達到相同結果的方法?我知道我可以
cd ~/mydir/subdir
先,但我正在尋找一種可以讓我留在同一個目錄中的單行解決方案。一種選擇是使用變數,但我希望在輸入大量命令時有一種更優雅的方式。看了看並在
man cp
網上搜尋,但找不到這樣的選擇。如果答案是肯定的“不”,那也沒關係,只是想我會檢查一下其他人是否使用了節省時間的技巧。謝謝!
使用
bash
(1),並假設路徑沒有空格或換行(2),我會使用cp ~/mydir/subdir1/{file1,file2}
這將通過 bash 擴展為(連同
~
擴展)cp ~/mydir/subdir1/file1 ~/mydir/subdir1/file2
一如既往,您可以使用
echo
echo cp ~/mydir/subdir1/{file1,file2}
根據評論:
(1)這可能適用於其他外殼,我沒有時間測試它們。
(2)對於“有趣”的名字,要麼使用
tab
完成(所以bash
會放置適當的轉義),或者使用引號(但不是圓括號):mv ./"some dir"/{"some name","other id"}