🐧 Работа с именами файлов с пробелами в системах Linux

by itisgood

Это нормально, что мы создаем файлы и каталоги (или можно сказать папки) на наших машинах, чтобы, когда нам нужно, мы могли легко их найти.

Иногда мы сохраняем их с именами, содержащими пробелы, например, мы сохраняем файл с именем “my file”, в этом случае терминал Linux выдаст ошибку.

Можно ли сохранять файлы без пробелов в Linux?

Да!

Можно, но доступ к ним в терминале будет осуществляться по-другому.

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

Как создать файл с пробелами в имени на Linux

Чтобы понять, как ссылаться на имя файла с пробелами в Linux, рассмотрим пример.

Сначала откроем терминал.

Затем создадим файл с именем “my file” с помощью команды touch:

touch my file 

Теперь посмотрите, создался файл или нет, используя команду “ls”.

Мы увидим, что вместо одного файла было создано два, один с именем “my”, а второй с именем “file”.

Для использования пробелов в имени мы используем либо кавычки (‘ ‘), либо экранирующую последовательность (\).

🐧 Разница между одинарными и двойными кавычками в оболочке Bash

Теперь мы снова создадим еще один файл, используя (‘ ‘) и еще один, используя (\).

touch 'my file'  
touch test\ file 

Теперь снова используйте команду “ls” для просмотра файлов.

Файлы были созданы.

Давайте проверим, получим ли мы те же ошибки при создании каталога с использованием пробела или нет.

Создадим каталог с пробелом с помощью команды mkdir.

mkdir new collection 

Мы посмотрим, был ли создан каталог или нет, используя команду “ls “.

В результате было создано два каталога вместо одного.

Мы можем исправить это так же, как и в методе создания файла, используя (‘ ‘) или (\).

Снова создайте каталог, используя (‘ ‘) или (\).

mkdir my\ new\ collection 

Как ссылаться на имя файла с пробелами на Linux

Итак, мы видим, что каталог был создан в соответствии с нашими требованиями.

Теперь, если мы хотим просмотреть содержимое файла, мы просто используем cat и имя файла с пробелами; это выдаст нам ошибку, что каталог недоступен.

cat test file 

Мы должны использовать “\”.

Например, мы хотим просмотреть содержимое тестового файла с помощью команды cat.

cat test\ file 

Файл пуст, поэтому система не выводит никаких результатов, но команда выполняется успешно.

Мы также можем открывать файлы, используя апострофы (‘ ‘) или кавычки (” “) как:

cat "test file" \
[ИЛИ] cat 'test file' 

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

Аналогично, вы можете удалить файл и каталог с пробелом в имени, используя апострофы ( ‘ ‘ ), кавычки (” “) или последовательность символов ( \ ).

rm -f 'test file' 

Аналогичным образом можно удалить каталог с пробелами в имени.

rm -f 'my new collection' 

Заключение

Мы создаем файлы и каталоги, не обращая внимания на имена, в которых могут присутствовать пробелы.

Терминал Linux по-разному обрабатывает файлы и папки, в именах которых есть пробелы.

Поэтому в этой статье мы решили эту проблему.

Если мы хотим назвать файл или каталог с пробелами, мы можем сделать это с помощью апострофов ( ‘ ‘ ), кавычек (” “) или экранирующей последовательности ( \ ).

You may also like

3 комментария

Umata 26.04.2022 - 16:31

А как найти все файлы содержащие пробел?

Reply
itisgood 26.04.2022 - 16:32

В имени?

Reply
V.B. 06.06.2023 - 02:51

Как делать поиск текста в файлах, названия которых содержат пробел?
Файлов много, ставлю звездочку, выдает ошибку
caution: filename not matched:

Причем, если вынести один такой файл в отдельную папку и там искать через звездочку, то grep в этом файле работает,
а если искать через звездочку в папке с 500 файлов, то их всех выбрасывает списком в терминале вот с этой ошибкой.

Reply

Добавить комментарий для V.B. Cancel Reply