Усечение имен папок после первого пробела

У меня есть каталог, полный подкаталогов с именами вроде

  • 01 – название папки
  • 02 – второе название
  • 03 – и т.д.
  • 04 – и т.д. , ,
  • 30 – окончательная папка

Я хочу усечь все эти имена папок, чтобы они были просто так, чтобы они выглядели так:

  • 01
  • 02
  • 03

есть ли способ написать скрипт или простую команду, которая выполнит это?

Используя служебную программу переименования на основе Perl (которая, как представляется, предоставляется Ubuntu), вы можете выполнить операцию переименования (заменив * любым списком каталогов, который вы действительно хотите):

 rename 's/^(\S+).*/$1/' * 

(Сначала я предлагаю сначала rename -n чтобы посмотреть, что будет сделано, прежде чем переименовать что-нибудь.)

Строка замены запрашивает совпадение последовательности непространственных символов ( \S+ ) в начале ( ^ ) исходного имени файла, за которым следует что-либо ( .* ), И заменяя его на первую согласованную группу ( $1 ), которая был исходным пространственно свободным сегментом.