如何在删除之前记录找到的文件

如何在删除之前记录找到的文件

有没有办法在删除文件名之前记录它?我正在将 png 转换为 jpg,需要删除旧的 png 文件,但我想先记录它。...或者我可以记录已找到的内容。

#!/bin/bash

PIXPATH=~/test-pix/

find $PIXPATH -type f -name '*.png' -exec mogrify -format jpg {} \;

rm -rf $PIXPATH*.png > list-of-pngs.txt

答案1

尝试这种方法:

#!/bin/bash
PIXPATH=~/test-pix/
find "$PIXPATH" -type f -name '*.png' \
  -exec mogrify -format jpg {} \; \
  -delete \
  -print \
  > list-of-pngs.txt

我将其分成几行以使其更加清晰,但您也可以在一行中完成。

我还做了一些修正和补充,以确保脚本能够按预期工作,例如,如果 $PIXPATH 包含空格。此外,您不需要rm -r文件

答案2

您可以对找到的每个文件执行多项操作,例如:

  • 多种的-exec ... \;
  • -print打印路径
  • -delete删除

例如:

#!/bin/bash

PIXPATH=~/test-pix/

find "$PIXPATH" -type f -name '*.png' -exec mogrify -format jpg {} \; \
  -print -delete | tee list-of-pngs.txt

我将其分成两行以使它更清晰,但您也可以在一行中完成。

我使用了tee,以便您看到正在写的内容,但您可以用简单的重定向来替换>

相关内容