⚕ Как прочитать имя файла с пробелами в 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, выполните:
Надеюсь, что эта статья хорошо объяснила, как управлять файлами и каталогами с пробелами в имени.
Спасибо, что нашли время, чтобы прочитать эту статью и, пожалуйста, оставьте свои комментарии. ?
bash и каталоги\файлы с пробелами в именах
Допустим я хочу удалить
/test test rm: невозможно удалить `/home/georg/test’: No such file or directory rm: невозможно удалить `test’: No such file or directory
У меня много папок с пробелами в именах,что нужно делать,чтобы их нормально читал баш?ЧЯДНТ?Как я понял,изза пробела распознаётся как две папки.Чем его заменить,или есть какое то другое решение?
Re: bash и каталоги\файлы с пробелами в именах
кавычки, экранировать, IFS=.
Re: bash и каталоги\файлы с пробелами в именах
/test\ test
или
rm -r «
/test test»
или
rm -r ‘
А вообще, google://Advanced Bash-Scripting Guide
Re: bash и каталоги\файлы с пробелами в именах
А как быть,если мне нужно к примеру прослушать с помощью xipm3 каталог с музыкой,где в именах пробелы,чтобы не прописывать кавычки индивидуально?
Re: bash и каталоги\файлы с пробелами в именах
depends, смотря какая команда запуска.
Re: bash и каталоги\файлы с пробелами в именах
scp и файлы с пробелами в именах
Можно ли при помощи scp копировать сабж? Пробовал экранировать пробелы обратным слешем, не прокатывает. Гугление ответа не дало.
В кавычки весь путь?
Всё после двоеточия или всё, включая IP логин хоста?
scp remotehost:«tmp/bla\ bla\ bla»
экранирование тоже нужно
То же самое, кстати, с rsync.
Спасибо огромное! Интересно, почему это не гуглится и отсутствует в манах.
автодополнение вам в помощь
Потому, что это до боли логично и очевидно 🙂 Можно еще дважды экранировать: «\\\ ».
> автодополнение вам в помощь
scp x remote:/y
автодополнение после y? это где такое?
положить ключег ida_rsa.pub на машину, с который (на которую) сливать собрался и асилить bash-completions. удивительное рядом.
понятно. не знал. даже не пытался автодополнением пользоваться, хотя хожу по ключу. всегда руками набивал.
unixforum.org
Форум для пользователей UNIX-подобных систем
имя файла, содержащее пробелы и командная строка bash
Модератор: Bizdelnick
имя файла, содержащее пробелы и командная строка bash
Сообщение bakulenko » 16.02.2010 17:47
Название фильма содержит пробелы. Как запустить его, используя командную строку и mplayer?
есть стойкое ощущение, что ранее у меня все запускалось, используя символ «\» перед каждым пробелом. Перебил систему с 32-бит на 64 и не могу стартануть файлы, содержащие пробелы, хотя сам bash по TAB подставляет необходимого вида строку.
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. Дойду до дома, испробую еще там.