有没有办法在删除文件名之前记录它?我正在将 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
,以便您看到正在写的内容,但您可以用简单的重定向来替换>
。