Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 控制在两个目录之间复制文件_Bash - Fatal编程技术网

Bash 控制在两个目录之间复制文件

Bash 控制在两个目录之间复制文件,bash,Bash,我需要将文件从一个文件夹复制到另一个文件夹。在第一个文件夹中,我有文件…当我开始从一个文件夹复制到另一个文件夹时,仍然没有所有的文件…它们即将到来…因此我需要复制文件,测试它们是否在第一个文件夹中…如果它们存在,复制到另一个文件夹,如果不存在,请尝试有时直到文件到达。我已经准备了以下代码,但还不够。我需要帮助 codi=( 000 003 006 009 012 015 018 021 024 027 030 033 036 039 042 045 048 051 054 057 060 ) f

我需要将文件从一个文件夹复制到另一个文件夹。在第一个文件夹中,我有文件…当我开始从一个文件夹复制到另一个文件夹时,仍然没有所有的文件…它们即将到来…因此我需要复制文件,测试它们是否在第一个文件夹中…如果它们存在,复制到另一个文件夹,如果不存在,请尝试有时直到文件到达。我已经准备了以下代码,但还不够。我需要帮助

codi=( 000 003 006 009 012 015 018 021 024 027 030 033 036 039 042 045 048 051 054 057 060 )
for c in ${codi[@]};do

FILE=$dir1/gfs.t00z.pgrb2.0p50.f$c
if [ -f "$FILE" ]; then
echo "File $FILE exists"
cp  $dir1/gfs.t00z.pgrb2.0p50.f$c $dir2
else
echo "File $FILE does not exist"
cont=100
until [ $cont -lt 1 ];do
if [ -f "$FILE" ];then
cp  $dir1/gfs.t00z.pgrb2.0p50.f$c   $dir2
else
echo "still File $FILE does not exist" $FILE
fi
let cont-=1
echo "$cont"
sleep 3
done
sleep 10
fi
done

现在这段代码将文件复制到另一个文件夹,当一个文件不存在时,程序会在几秒钟后再次搜索该文件…但当文件到达时…程序没有检测到它…循环中的某些内容可能不好…请提供帮助…

我喜欢shell脚本,但是这个用例最好通过
rsync

有关更多信息,请参阅

Local:  rsync [OPTION...] SRC... [DEST]
Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
有一个例子

您还可以从inotify tools包中使用inotifywait

inotifywait -r -m -e close_write --format '%w%f' /tmp | while read MODFILE
do
    echo need to rsync $MODFILE ...
done

你应该考虑显示一个实际的例子,而不是张贴用法:()为RSyc的UpRead,但是我同意你应该为所使用的用例提供一个简单的例子(本地到本地目录)。是你的朋友,BTW——考虑通过它运行代码,并在发布之前找到解决问题。