linux 使用bash脚本在文件夹之间复制文件

eagi6jfj  于 2023-03-07  发布在  Linux
关注(0)|答案(1)|浏览(178)

我正尝试以连续的方式提交多个职务。
每个作业都位于一个单独的文件夹中,每次要提交作业时,我都需要将以前文件夹中的一些文件复制到新文件夹中。
我写了下面的SLURM脚本,但它无法在文件夹之间复制文件。
有人能告诉我我的bash脚本有什么问题吗?

#!/usr/bin/bash
#SBATCH --time=120:00:00
#SBATCH --partition=...
#SBATCH --ntasks=...
#SBATCH --job-name ...
#SBATCH --nodes=...
#SBATCH --gpus-per-node=...
#SBATCH --cpus-per-gpu=...
#SBATCH --account=...
#SBATCH --qos=...
#SBATCH --output=slurm-out
#SBATCH --error=slurm_error
 
 
cd $SLURM_SUBMIT_DIR
module load gcc/9.3.0
for((i=0;i<=4;i++))
  do
      cd $i
      if [$i -gt 0]
      then
          j=$(($i - 1))
          cp $j/file1  ./file2 

      fi
    csh README > log
    cd ../
done

我尝试使用bash脚本,但它无法在文件夹之间复制文件。

egmofgnx

egmofgnx1#

因为**$j**不是一个绝对路径,所以需要修改脚本来处理@tjm3772指出的内容。

cp $j/file1  ./file2

cp ../$j/file1  ./file2

此外,如果您不关心文件是否在步骤之间被修改,您甚至可以考虑使用

ln ../$j/file1 ./file2

使您的进程更快,使用的磁盘空间更少。

相关问题