首页 > 解决方案 > cp:不能统计。没有这样的文件或目录,在 shell 脚本中使用 cp

问题描述

我尝试将一堆文件复制到一些目录中,然后构建一个 shell scipt:

for j in {0..329}
do      
        mkdir ./sub$j/slice{0..18}
        for i in {0..18}
        do
                cp ./sub$j/slice_{$(($i*10))..$(($i*10+9))}.jpg ./sub$j/slice$i
        done
done

但它总是说file ./sub0/slice_{0..9}.jpg doesnt exist

cp ./sub0/slice_{0..9}.jpg ./sub0/slice0工作正常。

有人可以告诉我错误在哪里吗?谢谢

标签: shell

解决方案


您的命令mkdir没有创建父目录。
如果不存在,您应该使用-p创建父目录

for j in {0..329}
do      
        mkdir -p ./sub$j/slice{0..18}
        for i in {0..18}
        do
                cp ./sub$j/slice_{$(($i*10))..$(($i*10+9))}.jpg ./sub$j/slice$i
        done
done

推荐阅读