Подтвердить что ты не робот

Удаление пробелов из имен файлов в Linux

У меня есть сотни jpg файлов в разных папках:

  • 304775 105_01.jpg
  • 304775 105_03.jpg
  • 304775 105_05.jpg
  • 304775 105_07.jpg
  • 304775 105_02.jpg
  • 304775 105_04.jpg
  • 304775 105_06.jpg

В принципе, мне нужно удалить SPACES. Я уже знаю команду для изменения пробелов в символах подчеркивания:

$ rename "s/ /_/g" *

Но в этом случае мне не нужны символы подчеркивания. Мне просто нужно удалить пространство. Я попробовал следующее, но это не сработало:

$ rename "s/ //g" *

Любая помощь будет оценена.

4b9b3361

Ответ 1

Вы можете сделать что-то вроде этого:

IFS="\n"
for file in *.jpg;
do
    mv "$file" "${file//[[:space:]]}"
done

Ответ 2

Следующие действия будут работать, если это действительно пространство.

$ rename "s/ //g" *

Try

$ rename "s/\s+//g" *

\s является символом пробела, принадлежащим множеству [ \t\r\n].