Як обробляти передавання імен файлів з пробілами в Bash

Linux має типову оболонку Bash (вона ж Bourne знову оболонка) для виконання команд для системи. Більшість програмістів віддають перевагу bash перед cmd через гнучкість та потужний інтерпретатор командного рядка, який забезпечує bash. Однак більшість користувачів все ще матимуть проблеми під час спроби обробляти передавання імен файлів з пробілами в bash. Це тому, що пробіли в bash не вважаються однаковими, як і в іменах файлів.

Чому Bash не розпізнає ім'я файлу з пробілами?

У Bash, якщо ви вводите кілька слів без символу переходу (\) або лапок , він буде розглядати всі слова як аргументи. Це стосується всіх операцій, незалежно від того, змінюєте ви каталог за допомогою " cd " або намагаєтесь отримати доступ до файлів за допомогою команд " cat ". Все, що ви напишете після їх використання, буде розглядатися як аргумент. Наприклад:

cat файл name.txt

Примітка : Ваше ім’я файлу може бути будь-яким, але для цієї статті ми будемо використовувати як приклад файл “name.txt ”.

Тут команда ' cat ' буде розглядати файл та ім'я як два аргументи, а не як один аргумент. Однак, якщо ви використовуєте вхідний символ або лапки, тоді оболонка bash буде розглядати це як один аргумент, який буде " ім'ям файлу.txt ".

Ім'я файлу з пробілами в Bash

Існує небагато методів, які можна використовувати для пробілів у назві. Найкраща практика - уникати пробілів для імен файлів у майбутньому. Простим методом буде перейменування файлу, до якого ви намагаєтесь отримати доступ, та видалення пробілів. Деякі інші методи використовують одинарні або подвійні лапки в назві файлу з пробілами або використовуючи символ втечі (\) безпосередньо перед пробілом. Ми надамо методи з прикладними прикладами, щоб показати вам, як це працює.

Спосіб 1: Використання одинарних та подвійних лапок

  1. Утримуйте клавіші Ctrl + Alt і натисніть T, щоб відкрити термінал .
  2. Тепер змініть каталог на те, де знаходиться файл.

    (Ви також можете перетягнути і падіння файл в терміналі після команди « кішки », який буде автоматично покласти цитати на шляху до файлу / директорії)

    CD Робочий стіл

    Примітка : Робочий стіл можна змінити на місце, до якого ви намагаєтесь отримати доступ.

  3. Введіть таку команду, щоб прочитати текстовий файл із пробілами в назві:
    cat 'ім'я файлу.txt'

    або

    cat "ім'я файлу.txt"
  4. Одноразові та подвійні котирування дадуть однакові результати. У деяких випадках потрібно спробувати обидва і подивитися, який з них працює.

Спосіб 2: Використання символу втечі з люфтом

  1. Утримуйте клавіші Ctrl + Alt і натисніть T, щоб відкрити термінал .
  2. Змініть каталог, де знаходиться файл, за допомогою наступної команди.
    CD Робочий стіл

    Примітка . Введіть назву свого місцезнаходження замість робочого столу.

  3. Тепер введіть команду і використовуйте символ втечі в будь-якому місці, де є ім'я:
    файл cat \ name.txt

Бонус: використання пропозицій та втеча

Іноді, коли ви використовуєте каталог у команді, це може мати наслідки для використання цитат на загальному шляху. Це тому, що деякі команди, такі як ' mv ' або ' cp ', розглядатимуть шлях як джерело файлу, якщо цитата використовується в цілому. Вам потрібно вказати котирування як для джерела, так і для пункту призначення, щоб такі команди, як ' cp ' могли працювати належним чином. Ви також можете перевірити приклад нижче, який покаже вам, що використання символу втечі для шляху набагато складніше, і користувачі можуть помилитися з ним.