2012-12-19 62 views
-1

我有以下問題:我想製作一個腳本,將某個目錄完全備份到另一個目錄。我可能不會使用cp -r或任何其他遞歸命令。所以我想用一段時間或for循環。需要備份的目錄由一個參數給出。這是我到目前爲止有:使用while/for循環與'find'命令來複制文件和目錄

OIFS="$IFS" 
IFS=$'\n' 

for file in `find $1` 
do 
    cp $file $HOME/TestDirectory 
done 

IFS="$OIFS" 

但是,當我執行它,這就是我的終端說道:啓動腳本,文件是打字稿

+0

我會''find'用'-exec'參數或'find -print0'用'xargs -0'命令代替for或循環秒。 – KurzedMetal

+0

這也是我的第一個想法,但我不能使用它。 – Mavix

+2

奇怪的要求,聽起來像一個功課。 – KurzedMetal

回答

1

試試這個:

find "$1" -type f -print0 | xargs -0 cp -t $HOME/TestDirectory 

別通過script運行腳本!

文件頂部添加這個(家當):你的腳本

#!/bin/bash 

find "$1" -type f -print0 | xargs -0 cp -t $HOME/TestDirectory 

變更許可添加executable標誌:

chmod +x myScript 

蒙山參數localy運行腳本:

./myScript rootDirectoryWhereSearchForFiles 
+0

謝謝!我現在知道我的終端爲什麼說「文件是腳本」。那是因爲我將腳本命名爲「腳本」。 – Mavix

相關問題