Было бы лучше, чтобы добавить информацию к вопросу сам комментарии могут быть удалены, и это должно быть сохранено. @pbhj вы правы. Я хотите создать пакет rpm с ручным зависимости и но не знаю, какую версию и название, так как этот пакет RPM должен быть удобен для использования на CentOS, то в Fedora, RedHat и пару других оборотах, основанных дистрибутивов. Подожди, это связать свой собственный сайт? Вы, вероятно, следует упомянуть, что в ваш ответ; как он у вас теперь создается впечатление, что есть у двух людей делать это, что делает его выглядеть немного лучше-проверено. "а промышленность не как стабильный". По "индустрия" вы имеете в виду биомедицинских исследований? Последнее предложение не очень понятно.

Используйте найти команду, чтобы перечислить файлы, которые вы хотите переименовать. Выберите только имена файлов с пробелами для исполнения. Пройти углубленный вариант действовать на файлы в подкаталогах, прежде чем действовать на сам каталог, так как переименование каталогов как найти это пересечение их приведет в некоторых каталогах были упущены.

найти /путь/к/каталогу -глубина-имя '* *' -exec для ... {} +

Если у вас есть prename команды, она применяется на Perl выражения для переименования файлов. Вам нужно позаботиться, чтобы действовать только на имя файла, а не на весь каталог. Если найти есть -execdir действий, это удобный способ сделать это:

найти /путь/к/директории -имя '* *' -execdir prename с/ //г' {} +

Заменить с/ //г купить с/ /_/г заменяет пробелы на подчеркивания, а не удалить их полностью, или с/ +/_/G и заменить последовательности пробелов одним подчеркивают.

Без -execdir вам нужен каталог избегание логики в программе Perl-код.

найти /путь/к/каталогу -глубина-имя '* *' -exec для prename '
 с:.*/::; каталог $dir=$&;
 ы/ //г;
$_="$Dir и$_"
'{} +

Если у вас нет prename, вы можете сделать это с помощью shell-скрипт. Вам потребуется для вызова консоли от найти. Если у вас есть КШ, вы можете использовать ${файл// /} построить, чтобы получить значение переменной файл без пробелов (используйте ${файл// /_} , чтобы заменить каждый пробел на символ подчеркивания):

найти /путь/к/каталогу -глубина-имя '* *' -execdir КШ -с '
 МВ "$0" "${0// /}"
'{} \;

или

найти /путь/к/каталогу -глубина-имя '* *' -exec для КШ -с '
 для файл Сделать
маршрутизатор dir=${файл%/*};
файл=${х##*/};
 файл MV "каталог$dir/$" "каталог$dir/${файл// /}";
сделано
'_ {} +

Если у вас есть bash или МКШ, вы можете использовать его вместо КШ. Если у вас нет, вы можете использовать СЭД , чтобы сделать строку обработки.

найти /путь/к/каталогу -глубина-имя '* *' -exec для Ш-с '
 для файл Сделать
маршрутизатор dir=${файл%/*};
файл=${х##*/};
 without_spaces=$(е %с "$файл." | СЭД "ы/ //г")
 файл MV "каталог$dir/$" "каталог$dir/${without_spaces%.}";
сделано
'_ {} +