2014-02-26 54 views
0

我最近在學習基本的終端命令。我可以在不改變母目錄的情況下在母目錄下創建並行子目錄嗎?

我發現我可以並行通過目錄添加它們之間的空間:

mkdir dir_a dir_b 

但是,當我試圖做一個母親的目錄下的並行目錄,這將失敗。

mkdir dir_a/dir_a_1 dir_a_2 
# Failed, the dir_a_2 is on top level 

有沒有一種方法,我可以一個母親的目錄下,使並行子目錄,而更改爲母親的目錄(無CD方法)?

+0

在我的ubuntu系統上工作得很好!你有什麼問題?你能清楚地解釋一下你想要的目錄結構嗎? – Nullpointer

+0

第二個dir_a_2不在dir_a下。 – Mario

+0

很明顯,它不在'dir_a'下,因此您必須使用'mkdir dir_a/dir_a_1 dir_a/dir_a_2'。當你使用'mkdir test'時,你的shell將它解釋爲'mkdir。/ test',這樣該目錄將只在當前目錄中創建! – Nullpointer

回答

0

mkdir的每個參數都植根於當前目錄。你所看到的行爲是有意的。對mkdir的第一個參數沒有特殊處理。

但是,有幾個選項可用於實現您正在查找的結果。

你可以使用一個循環:

for f in dir_a_1 dir_a_2; do mkdir -p "dir_a/$f"; done 

你可以使用pushd

mkdir dir_a; pushd dir_a; mkdir dir_a_1 dir_a_2; popd 

你可以使用printf和命令替換:

mkdir -p $(printf 'dir_a/%s ' dir_a_1 dir_a_2) 

你可以使用printf和xargs的:

printf 'dir_a/%s ' dir_a_1 dir_a_2 | xargs mkdir -p 

這些都應該適合你。

相關問題