简单的Bash脚本文件复制

lbr*_*anl 1 bash

我正在编写一个简单的评分脚本.我有一个名为HW5的目录,其中包含该类中每个学生的文件夹.从我当前的目录,其中包含HW5文件夹,我想将所有以单词mondial开头的文件复制到每个学生的文件夹中.我的脚本运行但不复制任何文件.有什么建议?

#!/bin/bash                                                                                                         

for file in ./HW5; do
    if [ -d $file ]; then
        cp ./mondial.* ./$file;
    fi
done
Run Code Online (Sandbox Code Playgroud)

谢谢,

pio*_*kuc 9

第一个循环只执行一次,file相同./HW5.添加星号以实际选择其中的文件或目录.

#!/bin/bash                                                                                                         

for file in ./HW5/*; do
  if [ -d "$file" ]; then
    cp ./mondial.* ./"$file"
  fi
done
Run Code Online (Sandbox Code Playgroud)

正如Mark Reed所说,这可以简化:

for file in ./HW5/*/; do 
  cp ./mondial.* ./"$file"
done
Run Code Online (Sandbox Code Playgroud)

  • 或者只需在./HW5/*/;中使用`for file并跳过`-d`测试. (2认同)