我正在嘗試編寫一個需要目錄的腳本,將其所有文件複製到我創建的新目錄中。所以腳本有兩個參數。第一個是現有的目錄,第二個是創建的目錄。創建和複製目錄
這是我到目前爲止有:
dir1=$1
dir2=$2
mkdir $2
cp $1/. $2
然而,我的新目錄總是空的。這是一個語法錯誤?
我正在嘗試編寫一個需要目錄的腳本,將其所有文件複製到我創建的新目錄中。所以腳本有兩個參數。第一個是現有的目錄,第二個是創建的目錄。創建和複製目錄
這是我到目前爲止有:
dir1=$1
dir2=$2
mkdir $2
cp $1/. $2
然而,我的新目錄總是空的。這是一個語法錯誤?
cp -r $1/. $2
是否需要添加遞歸?
cp $1/. $2
我認爲你需要使用通配符代替點 cp $1/* $2
另一種方式是,如果你告訴它複製.
使用遞歸複製
cp -r $1/* $2 # copy the whole directory into the second one recursively (e.i. including subdirectories)
cp -ar $1/* $2 # this will keep the sym links intact (not trying to replace them with the file they point)
,你實際上是告訴它複製目錄(.
鏈接到它所在的目錄,所以cd ././././././././
在同一目錄中循環)。
你可以這樣做:
cp $1/* $2
將所有文件從 「$ 1」 「$ 2」 的複製,但不是子目錄
cp $1/. -r $2
的所有文件和子目錄遞歸地複製,也治療像普通文件那樣的特殊文件(即,如果它找到一個管道,它從管道中讀取並寫入常規文件)。
cp $1/. -R $2
複製所有文件和子目錄遞歸,並保留特殊文件
cp $1/. -a $2
複製一切,還保持聯繫,組權限和特殊文件。
希望這有助於=)
好答案 – VAR121
不,究竟是什麼標誌-r? – Unknown
你正在告訴它遞歸複製。把dir1的內容複製到dir2 – ProfessionalAmateur
啊我明白了,我會用它,謝謝你的幫助。 – Unknown