Пробелы в именах файлов могут быть непростыми, особенно для новых пользователей Linux. Узнайте, как с ними бороться.
Вы заметите, что файлы в Linux обычно не содержат имен. Ваш учитель или коллега использует подчеркивание вместо пробелов в именах файлов и каталогов.
Дело не в том, что вы не можете использовать пробелы в именах файлов в терминале Linux. Просто это создает дополнительную боль, и поэтому вам следует по возможности избегать ее.
Почему? Позвольте мне показать это на примерах. Вы знаете общий синтаксис команд Linux:
command [options] argument1 argument2
Здесь аргументы разделены пробелами. Если вы попытаетесь использовать имена файлов с пробелами напрямую, это будет рассматриваться как отдельные аргументы, а не как один аргумент.
На приведенном выше снимке экрана, когда я пытаюсь использовать cat agatha booksкоманду, она не понимает, что agatha booksэто единственный аргумент. Он рассматривает agathaи booksкак разные имена файлов.
Как же тогда поступать с пробелами в имени файла? Есть два пути:
Заключите все имя файла в кавычки:
"file name withn spaces"
Выходите из каждого пробела, используя клавишу обратной косой черты:
file\ name\ with\ spaces
Покажу подробно.
Прочитать файл с пробелами в имени файла
Чтобы использовать имя файла с пробелами, вы можете заключить его в кавычки, например:
cat "file name with spaces"
Вы также можете избежать каждого пробела с помощью обратной косой черты, но это больше работы и больше запутывает, чем предыдущий метод:
cat file\ name\ with\ spaces
Обычно вы ставите \перед каждым пробелом в имени файла.
Вы также можете использовать одинарные кавычки вместо двойных кавычек.
cat 'file name with spaces'
Создайте файл с пробелом в имени файла
Теперь вам нужно ввести пробел в терминале, чтобы создать здесь имя файла. Снова используйте обратную косую черту или кавычки.
Как и в предыдущем разделе, вы можете создавать новые файлы с пробелами в имени файла, используя кавычки:
touch "file name with spaces"
Или обратная косая черта:
touch file\ name\ with\ spaces
Работа с пространством в имени папки
Вы можете создать каталог с пробелом в его имени так же, как создаете файл.
mkdir "new dir"
Теперь, если вы хотите переключиться в этот каталог, у вас будет путь с пробелами.
Но для вас это больше не должно быть проблемой. Чтобы перейти в каталог с пробелом, снова используйте кавычки или обратную косую черту.
cd "new dir" cd new\ dir
Обычно, когда вам приходится иметь дело с пробелами в именах, вы используете кавычки или обратную косую черту.
Предположим, вам нужно скопировать файл my fileиз этого new dir. Вот что вы можете сделать:
cp new\ dir/my\ file
Теперь это начинает немного сбивать с толку, правда? Есть обратная и прямая косая черта. Это может напугать нового пользователя или даже опытного, если таких косых черт будет слишком много.
Это становится еще более беспорядочным, когда в имени файла есть обратная косая черта. Тогда вы увидите двойные фартуки.
Это причина, по которой вам следует избегать использования пробелов или других специальных символов в именах файлов. Чтобы разделить слова в имени файла, используйте подчеркивание.
touch a_very_long_file_name_with_too_many_words
Это упрощает чтение имен файлов, и вам не придется прилагать дополнительных усилий для устранения этих пробелов в именах файлов.