2012-12-19 35 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

相关问题