fd查找文件并拷贝

根据您的需求,您希望递归搜索 cmake_out 目录下任意路径中所有以 vela 开头的 .bin 文件,并将它们拷贝到当前目录下的 nuttx 目录。使用 fd 命令可以这样实现:

mkdir -p nuttx && fd -t f -e bin '^vela' ./cmake_out -x cp -v {} ./nuttx

命令详解:

  1. 创建目标目录

    mkdir -p nuttx
    
  2. 搜索并拷贝文件

    fd -t f -e bin '^vela' ./cmake_out -x cp -v {} ./nuttx
    
    • -t f:只搜索文件(排除目录)
    • -e bin:只匹配扩展名为 .bin 的文件
    • '^vela':使用正则表达式匹配以 vela 开头的文件名
    • ./cmake_out:搜索起始目录
    • -x cp -v {} ./nuttx:对每个匹配文件执行拷贝
      • -v:显示拷贝详情(可选,但推荐用于确认操作)
      • {}:自动替换为找到的文件路径

根据您的目录结构优化:

从您的 ll 输出可以看出,文件大多在二级目录(如 p62_ap/p62_audio/ 等)中。如果不需要递归搜索所有子目录,可以限制搜索深度:

# 只搜索二级目录(推荐)
fd -t f -e bin '^vela' -d 2 ./cmake_out -x cp -v {} ./nuttx
  • -d 2:限制搜索深度为 2 级目录(即 cmake_out/一级目录/文件

预期匹配的文件:

根据您的 ll 输出,这个命令将匹配:

cmake_out/p62_ap/vela_ap.bin
cmake_out/p62_audio/vela_audio.bin
cmake_out/p62_audio/vela_audio_image.bin
cmake_out/p62_bootloader2/vela_bl2.bin
cmake_out/p62_cp/vela_cp.bin
cmake_out/p62_cp/vela_cp_image.bin
cmake_out/p62_ota/vela_ota.bin
cmake_out/p62_sensor/vela_sensor.bin

注意事项:

  1. 文件名冲突:如果不同目录有同名文件(如多个 vela_audio.bin),后拷贝的会覆盖前面的
  2. 大小写敏感:默认大小写不敏感,如需严格匹配小写 vela,添加 -s 参数:
    fd -s -t f -e bin '^vela' ./cmake_out -x cp {} ./nuttx
    
  3. 预览结果:先运行不带 -x 的部分确认匹配的文件:
    fd -t f -e bin '^vela' ./cmake_out
    

完整命令(推荐带确认):

# 1. 预览匹配的文件
echo "将拷贝以下文件:" && fd -t f -e bin '^vela' -d 2 ./cmake_out

# 2. 实际执行拷贝
mkdir -p nuttx && fd -t f -e bin '^vela' -d 2 ./cmake_out -x cp -v {} ./nuttx

这个命令会:

  1. 精确匹配以 vela 开头的 .bin 文件
  2. 限制在二级目录内搜索(根据您的目录结构优化)
  3. 显示拷贝详情(-v 参数)
  4. 自动创建目标目录(mkdir -p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值