Linux 将while/for循环与';查找';复制文件和目录的命令
我有以下问题:我想制作一个脚本,将某个目录完全备份到另一个目录。我可能不会使用cp-r或任何其他递归命令。所以我想使用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
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
?谢谢!现在我知道为什么我的终端会说“文件就是脚本”。那是因为我把剧本命名为“剧本”。