bash - 使用 bash 将文件复制到另一个文件夹
问题描述
我有一个将 1000 个文件复制到另一个文件夹的脚本。但是,我有以以下结尾的文件:
*_LINKED_1.trees
*_LINKED_2.trees
*_LINKED_3.trees
.
.
.
*_LINKED_10.trees
'*' 不是名称的一部分,但有一些字符串代替它。
我想要的是为我上面提到的每种类型以一种聪明的方式复制 1000 个文件。
#!/bin/bash
for entry in /home/noor/popGen/sweeps/hard/final/*
do
for i in {1..1000}
do
cp $entry /home/noor/popGen/sweeps/hard/sample/hard
done
done
是否有一种聪明的方法可以为每种类型复制所有 1000 个文件?一种方法是使用 if 语句,但我必须更改该 if 语句 10 次。
解决方案
下面的这个脚本将完成所需的任务。
file_count=0
for i in {1..10};
do
for j in source/*_LINKED_$i.trees;
do
file_count=$((file_count+1))
echo "cp $j destination/"
if ((file_count>1000));
then
file_count=0
break;
fi;
done
done
外循环for i in {1..10}
用于标记文件的类型(*_LINKED_$i.trees
)。
内部循环将遍历每种类型的所有文件(例如:*_LINKED_1.trees
等*_LINKED_2.trees
直到*_LINKED_10.trees
)。然后它将前 1000 个文件(使用 设置file_count=1000
)复制到该特定类型文件的目标位置。
推荐阅读
- typo3 - TYPO3 FlexForm:如何禁用内联元素中的字段?
- java - 在 Java 重载具有参数的方法时会发生什么,该参数是从另一个方法中获取的参数的子类型?
- azure-devops - Service Fabric 构建中的 PDB
- angular - 在 Cypress 中关闭 Angular Material 对话框
- c# - Azure Maps Batch 地理编码状态 202 12 小时后
- web-config - web.config 文件在多个用户之间共享并防止覆盖
- python - 将 Tkinter 窗口放在 Solaris 上的特定工作区上
- sql-server-2012 - 内联函数与普通选择
- powershell - 使用 Powershell 上传文件
- xdebug - Xdebug 不使用主管作为后台运行程序