shell - 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
工作正常。
有人可以告诉我错误在哪里吗?谢谢
解决方案
您的命令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
推荐阅读
- r - 如何用条件索引分隔每日数据(增加、减少、增长)?
- c# - 如何以编程方式加快系统时间?
- facebook - 通过 Facebook 图形 API 在 Facebook 的时间线中发布上传
- rust - 有没有其他方法可以采用整数或浮点输入,而不是采用字符串输入并进行转换?
- c# - 将 Epoch 时间戳转换为 DateTime
- javascript - 在rails中的javascript中使用require()
- react-native - TypeError: undefined is not an object (evalating '_expo.default.FileSystem')]
- go - 如何使用 Gorm 将外键添加到模型中
- shell - 只有在“if”块的主体之前添加回显语句后,Shell 脚本才能工作
- compiler-construction - LLVM 如何将三个地址 LLVM IR `add` 转换为 X86 两个地址`add`?