重命名文件并将新旧名称保存到输出文件

重命名文件并将新旧名称保存到输出文件

我在用着

for i in *.jpg; do mv $i $(openssl rand -rand $i -hex 16).jpg; done

重命名目录中的文件。

我需要做的是跟踪从旧名称到新名称的变化。所以我想输出一个文本或 csv 文件

输出 csv 或 txt 文件示例:

old_name, new_name
1234.jpg, 0dd4e436bd9482e8e679fa471aaf9b0e.jpg

添加典型的

>>output_file 

或者

| tee 

在这个 for 循环中对我来说不起作用。

答案1

echo "old_name, new_name" > output_file.csv
for old in *.jpg; do 
  new=$(openssl rand -rand "$old" -hex 16).jpg
  echo "$old, $new" >> output_file.csv
  mv "$old" "$new"
done

相关内容