递归覆盖目录树中的特定文件

递归覆盖目录树中的特定文件

我想递归地覆盖目录树中的文件。

我想覆盖的文件与文件名匹配“x_alpha*.png”并且有一个尺寸正好 456 字节

有没有办法在目录树中递归搜索这些内容,并用参考文件覆盖它们,例如"e:\mydir\good.png"

我正在使用 Windows 7,但我有Unx工具类,所以我也可以使用这些。

我正在寻找的是类似这样的、自动生成的东西:

copy /y e:\mydir\good.png e:\mydir\a\b\c\x_alpha0023.png
copy /y e:\mydir\good.png e:\mydir\e\f\g\x_alpha0045.png
copy /y e:\mydir\good.png e:\mydir\h\x_alpha0248.png

答案1

由于您使用的是 Windows 7,因此您也可以在 Power Shell 中执行此操作。

dir -recurse x_alpha*.png | where-object { $_.Length -eq 456 } | foreach-object { copy-item -force e:\mydir\good.png $_.FullName }
dir -recurse x_alpha*.png   (to see the results)

答案2

我不知道 UnxUtils,但可以使用 cygwin 来完成:

find /cygdrive/e/mydir/ -type f -name "x_alpha*.png" -size 456c -exec cp /cygdrive/e/mydir/good.png {} \;

您或许可以推断如何使用 UnxUtils 来做到这一点。

在覆盖文件之前,请先运行以下命令进行测试:

find /cygdrive/e/mydir/ -type f -name "x_alpha*.png" -size 456c

相关内容