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

Содержание
  1. ⚕ Как прочитать имя файла с пробелами в Linux
  2. 1) Создание имени файла с пробелами
  3. 2) Прочитать файл с пробелами в имени файла
  4. 3) Создание имени каталога с пробелами
  5. 4) Переход в каталог с пробелами в имени
  6. 5) Копирование каталога с пробелами в имени этого каталога
  7. 🐧 Работа с именами файлов с пробелами в системах Linux
  8. Как создать файл с пробелами в имени на Linux
  9. Как ссылаться на имя файла с пробелами на Linux
  10. Удаление файлов с пробелами в имени на Linux
  11. Заключение
  12. Как указать имя файла с пробелами в Linux
  13. Как получить доступ к файлам/каталогам в терминале с пробелами в имени:
  14. Как создать файл и каталог с пробелом в имени:
  15. Как прочитать файл с пробелом в имени:
  16. Как получить доступ к каталогу, в названии которого есть пробел:
  17. Как получить доступ к двум или более файлам/каталогам с пробелами в их именах:
  18. Заключение:
  19. Работа с «плохими» файлами в командной строке в Linux
  20. В названии файла есть служебный символ bash
  21. Имя файла начинается с дефиса
  22. Удаляем по wildcard
  23. Файлы с управляющим символом в названии
  24. Удаление файлов с символами utf8
  25. Перекодировка имени файла
  26. Автокомплит
  27. Удаляем файл через меню выбора
  28. Удаление по номеру inode
  29. Удаление по hex-коду
  30. unixforum.org
  31. имя файла, содержащее пробелы и командная строка bash
  32. имя файла, содержащее пробелы и командная строка bash
  33. Re: имя файла, содержащее пробелы и командная строка bash
  34. Re: имя файла, содержащее пробелы и командная строка bash
  35. Re: имя файла, содержащее пробелы и командная строка bash
  36. Re: имя файла, содержащее пробелы и командная строка bash
  37. Re: имя файла, содержащее пробелы и командная строка bash
  38. Re: имя файла, содержащее пробелы и командная строка bash
  39. Re: имя файла, содержащее пробелы и командная строка bash
  40. Re: имя файла, содержащее пробелы и командная строка bash
  41. Re: имя файла, содержащее пробелы и командная строка bash
  42. Re: имя файла, содержащее пробелы и командная строка bash
  43. Re: имя файла, содержащее пробелы и командная строка bash
  44. Re: имя файла, содержащее пробелы и командная строка bash
  45. Re: имя файла, содержащее пробелы и командная строка bash
  46. Re: имя файла, содержащее пробелы и командная строка bash

⚕ Как прочитать имя файла с пробелами в Linux

В Linux не очень часто обрабатывают имя файла с пробелами, но иногда файлы, скопированные или смонтированные из Windows, могут заканчиваться пробелами.

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

Мы расскажем, как создать, прочитать и скопировать файл с пробелами в имени файла.

1) Создание имени файла с пробелами

Чтобы создать файлы с пробелами в именах, выполните команду, как показано далее:

Например, чтобы создать файл с именем «itisgood docs», используйте следующий синтаксис

Если вы хотите просмотреть такой файл с пробелом в имени файла, используйте тот же принцип включения имен файлов в кавычки.

2) Прочитать файл с пробелами в имени файла

Вы можете использовать команду «cat» или открыть документ, используя текстовый редактор, например, vim, nano или gedit.

Кроме того, вы можете использовать синтаксис ниже:

Давайте добавим текст в файл ‘itisgood docs’

Для просмотра файла выполните команду ниже:

3) Создание имени каталога с пробелами

Для создания имен каталогов с пробелом между ними используйте синтаксис ниже

Обратите внимание на пробел после обратной косой черты

Например, чтобы создать каталог с именем «itisgood files», запустите

4) Переход в каталог с пробелами в имени

Чтобы перейти к каталогу с пробелами в имени, используйте следующий синтаксис

Чтобы перейти в каталог «itisgood files», выполните команду ниже

5) Копирование каталога с пробелами в имени этого каталога

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

Например, чтобы скопировать “itisgood files” в /home/james, выполните:

Надеюсь, что эта статья хорошо объяснила, как управлять файлами и каталогами с пробелами в имени.

Спасибо, что нашли время, чтобы прочитать эту статью и, пожалуйста, оставьте свои комментарии. ?

Источник

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Windows 10 ltsc установка edge

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

Источник

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

Главное меню » Linux » Как указать имя файла с пробелами в Linux

Различные причины удерживают нового пользователя Linux подальше от командной строки, одна из которых обрабатывает файлы в терминале. Файлы и каталоги в Linux могут иметь разные имена, а в некоторых именах могут быть «пробелы». Так в чем же дело? Проблема в том, что терминал по- разному читает «пробел»; например, если ваш каталог имеет имя «new folder», терминал примет два разных каталога, то есть «new» и «folder». Доступ к таким файлам в терминале может стать очень неприятным. К счастью, существуют различные методы работы с файлами/папками, в именах которых есть пробелы.

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

Как получить доступ к файлам/каталогам в терминале с пробелами в имени:

В этом разделе мы сначала создадим файл с пробелом в его имени; Затем мы узнаем, с какими ошибками мы сталкиваемся при обращении к нему, а затем как правильно получить к нему доступ в терминале:

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

Создать файл в Linux с пробелом в имени очень просто, откройте терминал и выполните команду, указанную ниже:

Файл может быть создан с использованием апострофов или кавычек. Процедура создания каталога очень похожа:

Вы можете проверить это с помощью команды «ls» в терминале.

Как прочитать файл с пробелом в имени:

Прежде чем мы узнаем, как правильно читать файл с пробелом в имени, давайте определим ошибку, которую он может дать. Поэтому, когда вы попытаетесь прочитать созданный выше файл (my file), вы получите сообщение об ошибке:

Теперь посмотрим, что происходит, когда вы пытаетесь что-то записать в файл:

Как видно, приведенная выше команда вместо записи «my file» создает новый файл с именем «my» и сохраняет в него текст. Итак, как получить доступ к такому файлу? Что ж, есть два подхода:

  • Использование escape-символа, например “\ ”
  • Использование апострофов или кавычек

Итак, прежде всего, давайте вставим текст в созданный выше файл, используя ;“\ ”:

Чтобы прочитать это, используйте:

Теперь, чтобы прочитать это, используйте:

Как получить доступ к каталогу, в названии которого есть пробел:

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

Это становится сложной задачей, особенно при доступе к пути, в имени которого есть папка с пробелом. Итак, самый простой способ – использовать апострофы, кавычки или escape-символ (\).

Вы также можете использовать обратную косую черту «\»:

Как получить доступ к двум или более файлам/каталогам с пробелами в их именах:

Чтобы получить доступ к нескольким файлам/каталогам, вы можете использовать апострофы отдельно для каждого имени файла / каталога или применять апострофы ко всему пути. Давайте разберемся с этим на примере:

Читайте также:  Ос линукс описание кратко

В этой команде, мы копируем файл «my file» из каталога «my dir» в папку «files». В первой команде мы использовали апострофы отдельно, а во второй команде я использовал их для всего пути, оба будут выполнять одну и ту же работу, но последнее было бы намного легче запомнить.

Заключение:

Доступ к файлу/каталогу в терминале с пробелом в его имени звучит как простая работа, пока вы не получите ошибку, особенно при изменении каталога или копировании файлов по пути. Есть два основных способа работы с такими файлами или каталогами; в одном используются escape-символы, т. е. обратная косая черта (\ ) , а во втором – апострофы или кавычки. Использование обратной косой черты может сбивать с толку; проще и лучше использовать кавычки или апострофы. Нажатие «вкладки» – еще один быстрый способ автозаполнения пути во время работы в терминале.

Источник

Работа с «плохими» файлами в командной строке в Linux

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

В качестве shell-оболочки рассмотрим bash, как самую используемую. А в качестве операции над файлами рассмотрим удаление, как самую деструктивную.

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

В названии файла есть служебный символ bash

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

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

С полным списком служебных символов и механизмом экранирования в bash можно ознакомиться в man bash. Раздел QUOTING.

Имя файла начинается с дефиса

Удалить файл, начинающийся с дефиса простым экранированием не получится, и команда rm будет воспринимать дефис, как начало своего аргумента. Решить проблему довольно просто:

Удаляем по wildcard

Если удаление файлов попадает под wildcard-маску, то можно удалить всю группу файлов:

Файлы с управляющим символом в названии

В названии файла может встречаться управляющий ASCII-символ, такой как перевод строки (\n), табуляция (\t), backspace (\b). Это символы с ASCII-кодами менее 0x20, а также символы DELETE и ESC. Для удаления таких файлов подходит конструкция:

Другим способом удаления таких файлов являяется ввод управляющего символа с клавиатуры. Для этого нужно воспользоваться комбинацией клавиш, которая экранирует следующий введенный символ, тем самым запрещая системе обрабатывать его. Как правило, эта комбинация CTRL+V. Точно убедиться в этом можно с помощью команды stty -a, посмотрев на параметр lnext. Удалим файл, содержащий символ ESC:

Удаление файлов с символами utf8

Если имя файла содержит символ в кодировке utf8, который мы не можем набрать на клавиатуре, то удалить такой файл можно выделением его мышкой, копированием в буфер обмена и последующей вставкой на ввод команды rm. Главное условие состоит в том, что наш терминал должен работать в кодировке utf8. Кодировка выставляется в настройках терминала. Будь то xterm, putty или брутальный linux tty.

Перекодировка имени файла

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

Как видно, чтобы осуществить правильное перекодирование нужно знать две кодировки: предполагаемую кодировку файла и кодировку нашего терминала. Наиболее трудно распознать предполагаемую кодировку файла по непонятным символам. Есть замечательная табличка

Также можно воспользоваться сторонними программами, которые попытаются распознать кодировку автоматически. Например, онлайн-декодер Лебедева.

Если вы встретили такие символы в примонтированном media-носителе или смонтированном разделе Windows, не спешите ничего перекодировать. Возможно, вы просто указали неправильные опции монтирования.

Автокомплит

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

Удаляем файл через меню выбора

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

Читайте также:  Пакет средств разработки программного обеспечения sdk для windows

Удаление по номеру inode

Удалить файл можно по его номеру inode. Номер inode уникально идентифицирует файл в файловой системе. Узнать номер inode можно с помощью команды ls, а удалить – с помощью find. Недостаток этого способа, такой же, как у предыдущего. Неудобно, в случае большого числа файлов.

Удаление по hex-коду

И нельзя не упомянуть один суровый метод. Удаление по hex-кодам. Суть такова: мы узнаем hex-коды всех байтов в имени файла, а затем удаляем файл, указывая вместо имени hex-коды.

Хорошо, все-таки, что на практике такие файлы попадаются нечасто.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

имя файла, содержащее пробелы и командная строка bash

Модератор: Bizdelnick

имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 16.02.2010 17:47

Название фильма содержит пробелы. Как запустить его, используя командную строку и mplayer?

есть стойкое ощущение, что ранее у меня все запускалось, используя символ «\» перед каждым пробелом. Перебил систему с 32-бит на 64 и не могу стартануть файлы, содержащие пробелы, хотя сам bash по TAB подставляет необходимого вида строку.

openSuse 11.2 x64

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение mrcashe » 16.02.2010 18:28

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение drBatty » 16.02.2010 18:49

вчера перечислил 7 способов. вот восьмой, универсальный:

Всё заключаем в одиночные кавычки. После чего, внутренние одиночные кавычки меняем на ‘»‘»‘
бинго.

Скоро придёт
Осень

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 16.02.2010 18:54

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение drBatty » 16.02.2010 19:18

вы не поняли!
не надо в смесь, заключайте всё в одиночные кавычки
единственное исключение, это если в имени есть такие кавычки, только в этом случае, внутренние кавычки меняются на комбинацию ‘»‘»‘

Скоро придёт
Осень

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение Reboot » 16.02.2010 19:22

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение WTakET » 16.02.2010 19:34

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение drBatty » 16.02.2010 19:50

как он такое напишет, если «сам по TAB подставляет»?

ЗЫЖ Вообще-то этот способ №4. №8 я ещё не придумал

Скоро придёт
Осень

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 17.02.2010 07:55

Дык, систему с нуля поставил. Так что, нечего особо перекомпиливать. Попробую еще перегрузиться в 32-битку, а то может меня склерох подводит, и я ни разу не включал файлы с пробелами.
Ругается, собственно, не баш, а мплейер, понимая имя файла как набор отдельных файлов, и ругается, мол не может их найти.

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение NickLion » 17.02.2010 08:31

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 17.02.2010 09:12

Попробую тогда свежий профиль сделать. Может косяк в том, что из 32-битки ломашнюю директорию подрубил как есть.

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение drBatty » 17.02.2010 09:53

а что вы мучаетесь? ну переименуйте файл в 1.avi
или mv тоже ругается? тогда в mc нажмите SHIFT+F6 на файле.

ЗЫЖ и ещё: повторю, у вас в файле кроме пробелов могут быть кривые символы, например $, !, <, >, [, ] и многие другие.

Скоро придёт
Осень

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 17.02.2010 11:28

а что вы мучаетесь? ну переименуйте файл в 1.avi
или mv тоже ругается? тогда в mc нажмите SHIFT+F6 на файле.

ЗЫЖ и ещё: повторю, у вас в файле кроме пробелов могут быть кривые символы, например $, !, <, >, [, ] и многие другие.

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

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение drBatty » 17.02.2010 11:39

ага. используйте команду ln

Скоро придёт
Осень

Re: имя файла, содержащее пробелы и командная строка bash

Сообщение bakulenko » 17.02.2010 11:49

drBatty
Так, с ссылками я знаком, а вот что такое экранирование — впервые слышу. Поковыряю на этот счет. Просто я то вряд ли что успел бы с этим сделать: 32-битка стоит от силы пару месяцев, да и то, времени особо не было ее ковырять, а 64 бита стоят с выходных, то есть, вообще ею еще не занимался, разве что настройки кед и все, что с ними связано, перенес через папку /home.

На всякий случай, # echo -n «$IFS» выдал пустую строку. Запустил по ssh. Дойду до дома, испробую еще там.

Источник

Оцените статью