Linux

如何批量重命名文件以刪除副檔名之前的多餘空格

  • March 26, 2013

我有一堆文件的文件名遵循模式’filename.ext’。例如:

filename .ext

我想重命名所有這些以刪除 .ext 之前的空格。例如:

filename.ext

我可以找到他們都使用

find * -type f -name'* .*'

但是我怎樣才能重命名所有這些文件?

創建一個名為“renamethis.sh”的文件。它的內容應該是:

#!/bin/bash
mv "$1" "$(echo $1 | sed 's/ \././')"

設置可執行位:chmod a+x renamethis.sh. 然後,執行類似:

find /path/to/dir -name '* .*' -type f -print0 | xargs -0L 1 /path/to/renamethis.sh

YMMV,不保證明示或暗示等。

FWIW,空間使這變得奇怪;只要文件名中沒有其他奇怪的字元,就可以使用這種方法。如果你這樣做了,你可能想考慮一下 Perl 或 PHP 中的 scandir/readdir 循環,但上面的腳本是第一個想到的。

引用自:https://serverfault.com/questions/264146