我想递归地覆盖目录树中的文件。
我想覆盖的文件与文件名匹配“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