Files
使用 sha1sum 中的隨機字元重命名文件。名稱會是唯一的嗎?
我正在使用此命令重命名具有隨機字元的文件,
sha1sum
並將所有文件從子目錄移動到目前目錄:for fname in `find . -type f`; do mv "$fname" $(echo "$fname" | sha1sum | cut -f1 -d' ').html; done
- 但問題是:它會創建唯一的文件名嗎?我擔心從 sha1sum 生成的名稱可能不是唯一的(生成兩次或更多)。
- 如果我執行上面的命令,然後在另一個目錄中執行另一個命令,它會為每個文件生成一個唯一的文件名嗎?
sha1sum
只要輸入是唯一的,輸出就會是唯一的。(除非你非常倒霉並且你發現了一些sha1sum
碰撞)。至於您的案例:使用
printf '%s' "$fname"
代替是一個好習慣echo "$fname"
,前者將在$fname
is-n
或-e
,…時起作用。另外,我不確定您的動機究竟是什麼,但您可以考慮
sha1sum
使用文件內容而不是文件名來提供。這樣,您將獲得每個唯一內容的唯一文件名。