При работе с Ubuntu Linux вы можете столкнуться с утилитами и приложениями, которые работают только с именами файлов, не содержащими пробелов. Мы не всегда сохраняем файлы в таком формате без пробелов, и нам, возможно, придется искать обходной путь, который полностью удаляет пробелы в именах файлов. Таким образом, ваши имена файлов не будут содержать пробелов, и вы сможете легко работать с ними во всех ваших приложениях.
В этой статье мы расскажем вам о двух способах удаления пробелов из имен файлов с помощью командной строки Ubuntu.
Метод 1: С помощью команды mv в цикле 'for'
В этом методе мы будем использовать команду Ubuntu mv в цикле for, чтобы переименовать все файлы/папки в каталоге так, чтобы удалить все пробелы.
Откройте командную строку Ubuntu, Терминал, либо через поиск в Application Launcher, либо сочетанием клавиш Ctrl+Alt+T.
Вот как выглядят файлы в моей папке с образцами; я перечислил их содержимое с помощью команды ls:
Вот команда, которую я буду использовать, находясь в каталоге, файлы которого я хочу переименовать:
1 | for oldname in *; do newname=`echo $oldname | sed -e 's/ //g'`; mv "$oldname" "$newname"; done |
Когда я снова перечислил содержимое каталога, вы можете увидеть, что все имена файлов больше не содержат пробелов.
Метод 2: Использование сценария bash для переименования файлов
В этом методе мы будем использовать сценарий bash, который использует команду mv для переименования имен файлов и папок таким образом, чтобы убрать все пробелы.
Откройте приложение Terminal и перейдите в папку bin следующим образом:
1 | cd ~bin |
Теперь откройте новый файл скрипта в одном из ваших любимых текстовых редакторов. Мы будем использовать редактор Nano, чтобы открыть пустой файл скрипта с именем remove_spaces.sh
1 | sudo nano remove_spaces.sh |
В этот пустой файл добавьте следующий скрипт:
1 2 3 4 5 6 7 8 | #!/bin/bash ( IFS=$'\n' for y in $(ls $1) do mv $1 `echo $y | sed 's/ /\\ /g'` `echo "$y" | sed 's/ //g'` done ) |
Вместо того, чтобы вводить весь скрипт в ваш bash файл, вы можете скопировать его отсюда и вставить в Терминал, используя Ctrl+Shift+V, или используя опцию Paste из меню правой кнопки мыши.
Вот как будет выглядеть ваш файл:
Теперь выйдите из файла через сочетание клавиш Ctrl+X и сохраните файл на запрос "Сохранить измененный буфер?", набрав Y и нажав Enter.
Для того чтобы сделать этот файл исполняемым скриптом, выполните следующую команду в Терминале:
1 | sudo chmod +x remove_spaces.sh |
Теперь вы готовы использовать скрипт в любой из ваших папок.
1 | remove_spaces.sh |
Когда я запускаю скрипт на моем каталоге "sample", я вижу, что все пробелы в именах файлов удалены. Вы можете увидеть результат, когда я снова перечислю содержимое файла с помощью команды ls:
Итак, это были два способа, с помощью которых вы можете переименовать файлы так, чтобы все пробелы в их именах были удалены. Теперь любое приложение, которое вы используете, не будет не распознавать имена файлов, содержащие пробелы.