Linux 将while/for循环与';查找';复制文件和目录的命令

Linux 将while/for循环与';查找';复制文件和目录的命令,linux,find,cp,Linux,Find,Cp,我有以下问题:我想制作一个脚本,将某个目录完全备份到另一个目录。我可能不会使用cp-r或任何其他递归命令。所以我想使用while或for循环。需要备份的目录带有一个参数。这就是我到目前为止所做的: OIFS="$IFS" IFS=$'\n' for file in `find $1` do cp $file $HOME/TestDirectory done IFS="$OIFS" 但当我执行它时,我的终端会这样说:脚本已启动,文件为typescript find "$1" -type

我有以下问题:我想制作一个脚本,将某个目录完全备份到另一个目录。我可能不会使用cp-r或任何其他递归命令。所以我想使用while或for循环。需要备份的目录带有一个参数。这就是我到目前为止所做的:

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

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

IFS="$OIFS"
但当我执行它时,我的终端会这样说:脚本已启动,文件为typescript

find "$1" -type f -print0 | xargs -0 cp -t $HOME/TestDirectory
不要通过
脚本
运行脚本

将此(shebang)添加到文件顶部:

#!/bin/bash

find "$1" -type f -print0 | xargs -0 cp -t $HOME/TestDirectory
更改脚本添加
可执行文件的权限
标志:

chmod +x myScript
使用以下参数在本地运行脚本:

./myScript rootDirectoryWhereSearchForFiles

我会使用
find
-exec
参数,或者
find-print0
xargs-0
命令,而不是for或循环。这也是我的第一个想法,但我不允许使用它。奇怪的要求,听起来像是家庭作业。为什么不允许您使用
-exec
-print0
xargs
?谢谢!现在我知道为什么我的终端会说“文件就是脚本”。那是因为我把剧本命名为“剧本”。