You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复制单个文件并保留其所属目录名称到其他位置

方案1:Shell 循环 + cp 命令(逻辑最直观)

进入所有样本目录的上级目录,执行以下命令即可:

# 替换下方路径为你实际的目标存储路径
target_dir="/your/target/directory/path"

for sample_dir in sample_id*/; do
  # 自动在目标路径创建对应样本目录,已存在也不会报错
  mkdir -p "${target_dir}/${sample_dir}"
  # 仅复制contigs.txt到对应样本目录下
  cp "${sample_dir}/contigs.txt" "${target_dir}/${sample_dir}/"
done

方案2:Rsync 单行命令(适合批量快速操作)

利用rsync的过滤规则,不需要写循环即可实现精准同步:

# 替换末尾路径为你实际的目标存储路径
rsync -av --include='/' --include='contigs.txt' --exclude='' ./ /your/target/directory/path/

规则优先级说明:

  • 先匹配--include='/'保留所有样本目录,避免目录被排除后无法同步内部文件
  • 再匹配--include='contigs.txt'仅允许同步contigs.txt文件
  • 最后--exclude='*'排除所有其他未被包含的文件和目录

方案3:find + cp --parent (自动保留目录结构)

搭配find筛选目标文件,利用cp原生的--parent参数自动保留上层目录结构:

# 替换末尾路径为你实际的目标存储路径
find ./sample_id* -name "contigs.txt" -exec cp --parent {} /your/target/directory/path/ \;

注意:如果你的样本目录不是以sample_id开头命名,将上述命令中的sample_id*替换为匹配你实际目录的通配符即可。

内容的提问来源于stack exchange,提问作者CuriousDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:57:00