2013-03-15 96 views
1
cp ${skeleton_dir}/*.cfg ${skeleton_dir}/*.org ./ 

我不明白這是什麼意思,但我有一個基於程序行爲的猜測。它將.cfg文件複製到當前目錄,但是*.org ./做什麼?瞭解shell腳本中的cp

我想修改這一行來複制* .spop文件。這種改變會訣竅嗎? (這是很難輕鬆地驗證這一點的週轉時間在我的機器上一天)

cp ${skeleton_dir}/*.cfg ${skeleton_dir}/*.org ./ 
cp ${skeleton_dir}/*.spop ${skeleton_dir}/*.org ./ 

很抱歉的愚蠢的問題,但我不知道很多關於這一點,就很難谷歌「./」。

未來,我將如何搜索與cp命令(此「./」)一起使用的不同變體。我現在知道關於「man xxx」,並且我讀了「man cp」,但是沒有任何關於「./」的信息。「

回答

1

如果您閱讀cp的手冊頁,您會看到可以指定多個源複製到目標目錄。 ./是當前目錄。那麼這樣做是將${skeleton_dir}中的所有.cfg.org文件複製到當前目錄。只需添加*.spop

cp ${skeleton_dir}/*.cfg ${skeleton_dir}/*.org ${skeleton_dir}/*.spop ./ 

您還可以使用大括號展開:

cp ${skeleton_dir}/*.{cfg,org,spop} ./ 
+0

啊!! ./是當前目錄。謝謝。現在這是直截了當的。我把它和運行命令「./」混淆了,它們是兩個單獨的東西不是? 哦,我明白了./真的不是我認爲這一直是這樣的跑步。如果我沒有這個命令進入終端,它說沒有找到命令。 我覺得我已經學到了一些東西 – SwimBikeRun 2013-03-15 04:12:14

+0

@MaxRunFast我不認爲'。/'是一個有效的命令..你可能會考慮'。/ executable'在當前目錄中運行一個可執行文件 – 2013-03-15 04:15:10

+1

'.'是當前目錄,'/'是路徑名中目錄和內容之間的分隔符。 '.'和'。/'作爲'cp'的最後一個參數本質上沒有區別。 – Barmar 2013-03-15 04:20:38