我该如何写一个可以搜索,重命名和替换文件的bash脚本

我在源文件夹中有一堆文件需要更新到目标文件夹。源文件夹中的布局是平坦的,没有子目录,例如:

src\a.h
   \a.c
   \b.h
   \b.c
   \c.h
   \c.c

目标文件夹包含多层深层子目录,例如:

dst\App\a.h
   \App\a.c
   \USBD\CDC\b.h
   \USBD\CDC\b.c
   \USBH\CORE\FUNCTION\c.h
   \USBH\CORE\FUNCTION\c.h

我需要递归搜索“ dst”目录中的所有文件,如果其中任何一个与“ src”目录中的任何文件匹配,然后将“ dst”中的文件重命名为XX.sav(XX是原始名称)并将其从“ dst”复制到“ src”。

谢谢

威廉·珀塞尔

假设您实际上要从复制srcdst,并且srcdst是兄弟姐妹,并且命令是从公共父目录运行的,请尝试:

find dst -type f -exec sh -c 'test -f src/${0##*/} && 
    { mv $0 $0.sav && cp src/${0##*/} $0; }' {} \;

如果最后两个假设不正确,请尝试(未经测试):

find /path/to/dst -type f -exec sh -c 'test -f $1/${0##*/} && 
    { mv $0 $0.sav && cp $1/${0##*/} $0; }' {} /path/to/src \;

您应该小心:如果其中有任何现有.sav文件,dst它们可能会被覆盖,并且如果其中有任何.sav文件,src则最终可能会与.sav.savdst中的.sav文件重复,而该文件是此命令本身创建的相关文件的副本使用mv -i,如果他们是相关的解决这些问题。如果现有文件数量很多,则mv -i可能不是合适的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我该如何写一个函数来填充文件中的向量

来自分类Dev

我该如何写一个正确的路径来将文件保存在Java中?

来自分类Dev

我有2个文档,我该如何写一个将输出作为单个文档返回的查询

来自分类Dev

vim如何写一个只读文件?

来自分类Dev

如何写一个“ * .bat”文件?

来自分类Dev

vim如何写一个只读文件?

来自分类Dev

我如何写一个特殊字符:“到文件?

来自分类Dev

UNIX SHELL脚本用Sed替换文本,我可以运行该程序,但是对于一个简单的特殊情况,它不起作用,我该如何纠正它?

来自分类Dev

我该如何写一个简单的示例,说明如何在Swift 5中使用委托

来自分类Dev

如果尚不为0,我该如何写一个function以加7并减2

来自分类Dev

如何写一个结构?

来自分类Dev

如何在BASH中查找和替换文件每一行的最后一个空格?

来自分类Dev

如何在BASH中查找和替换文件每一行中的最后一个空格?

来自分类Dev

重命名多个文件,Bash脚本,最好添加一个名称

来自分类Dev

如何创建一个Bash脚本,该脚本可以在文件中搜索字符串并获取字符串的数值并与另一个值进行比较

来自分类Dev

如果它为空angularjs,我该如何写一个条件http.get来创建一条记录

来自分类Dev

通过Bash重命名和转换文件名

来自分类Dev

我该如何写这个查询

来自分类Dev

我该如何写以下或?

来自分类Dev

如何写一个“等式”?谓词?

来自分类Dev

如何写一个帕斯卡数的倒数?

来自分类Dev

你如何写一个动态值

来自分类Dev

如何写一个n元取反器?

来自分类Dev

如何写一个while循环

来自分类Dev

如果元素的第一个子代不是javascript中的标记,该如何写?

来自分类Dev

我可以在gulp中使用一个任务重命名或复制两个文件吗?

来自分类Dev

用于在 XML 文件中搜索字符串并使用该字符串重命名文件的 Bash 脚本

来自分类Dev

我该如何写一个数学公式将一个连续变量非线性缩放到0-100范围,其中f(x)→100其中x→Inf

来自分类Dev

使用重命名递归替换文件名(而不是目录)中无效字符的脚本

Related 相关文章

  1. 1

    我该如何写一个函数来填充文件中的向量

  2. 2

    我该如何写一个正确的路径来将文件保存在Java中?

  3. 3

    我有2个文档,我该如何写一个将输出作为单个文档返回的查询

  4. 4

    vim如何写一个只读文件?

  5. 5

    如何写一个“ * .bat”文件?

  6. 6

    vim如何写一个只读文件?

  7. 7

    我如何写一个特殊字符:“到文件?

  8. 8

    UNIX SHELL脚本用Sed替换文本,我可以运行该程序,但是对于一个简单的特殊情况,它不起作用,我该如何纠正它?

  9. 9

    我该如何写一个简单的示例,说明如何在Swift 5中使用委托

  10. 10

    如果尚不为0,我该如何写一个function以加7并减2

  11. 11

    如何写一个结构?

  12. 12

    如何在BASH中查找和替换文件每一行的最后一个空格?

  13. 13

    如何在BASH中查找和替换文件每一行中的最后一个空格?

  14. 14

    重命名多个文件,Bash脚本,最好添加一个名称

  15. 15

    如何创建一个Bash脚本,该脚本可以在文件中搜索字符串并获取字符串的数值并与另一个值进行比较

  16. 16

    如果它为空angularjs,我该如何写一个条件http.get来创建一条记录

  17. 17

    通过Bash重命名和转换文件名

  18. 18

    我该如何写这个查询

  19. 19

    我该如何写以下或?

  20. 20

    如何写一个“等式”?谓词?

  21. 21

    如何写一个帕斯卡数的倒数?

  22. 22

    你如何写一个动态值

  23. 23

    如何写一个n元取反器?

  24. 24

    如何写一个while循环

  25. 25

    如果元素的第一个子代不是javascript中的标记,该如何写?

  26. 26

    我可以在gulp中使用一个任务重命名或复制两个文件吗?

  27. 27

    用于在 XML 文件中搜索字符串并使用该字符串重命名文件的 Bash 脚本

  28. 28

    我该如何写一个数学公式将一个连续变量非线性缩放到0-100范围,其中f(x)→100其中x→Inf

  29. 29

    使用重命名递归替换文件名(而不是目录)中无效字符的脚本

热门标签

归档