Filenames
重命名 .txt 列表中的文件
我有 .txt 列表,其中包含文件和相應的 MD5 雜湊:
ab16d9ab5682bb0038c901ad8fc424c0 *file1.doc 28bb8e092301340f19585201166e5b86 *file2.doc 5f53d5e9512a717049185fcf617b8a37 *file3.doc 3c28de2b988ce82b04803671540427e5 *file4.doc 75079fb178347e3f1b3b886589ca6471 *file5.doc
當 .txt 文件在目錄中時:
- 如何將文件重命名為其雜湊?
- 如何將雜湊重命名為其文件名?
如何將文件重命名為其雜湊?
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
使用者提示(如果有的話)。