Filenames

重命名 .txt 列表中的文件

  • October 5, 2020

我有 .txt 列表,其中包含文件和相應的 MD5 雜湊:

ab16d9ab5682bb0038c901ad8fc424c0 *file1.doc
28bb8e092301340f19585201166e5b86 *file2.doc
5f53d5e9512a717049185fcf617b8a37 *file3.doc
3c28de2b988ce82b04803671540427e5 *file4.doc
75079fb178347e3f1b3b886589ca6471 *file5.doc

當 .txt 文件在目錄中時:

  1. 如何將文件重命名為其雜湊?
  2. 如何將雜湊重命名為其文件名?

如何將文件重命名為其雜湊?

while IFS=' ' read <&3 -r hash fileName; do
   echo mv -v -- "${fileName#\*}" "${hash}";
done 3< infile.txt

如何將雜湊重命名為其文件名?

while IFS=' ' read <&3 -r hash fileName; do
   echo mv -v -- "${hash}" "${fileName#\*}";
done 3< infile.txt

注意echo:當您對試執行感到滿意時刪除。-v是一些實現支持的非標準擴展,mv用於告訴它們更詳細。如果您mv不支持它,只需將其刪除。

我們infile.txt在文件描述符 3 而不是 stdin (0) 上打開,這樣它就不會干擾mv使用者提示(如果有的話)。

引用自:https://unix.stackexchange.com/questions/612974