Як поводитися з передачею імен файлів з просторами в Bash
У Linux є оболонка Bash (також Bourne знову оболонка) для виконання команд для системи. Більшість програмістів віддають перевагу bash понад cmd через гнучкість та потужний інтерпретатор командного рядка, який надає bash. Однак у більшості користувачів все ж виникнуть проблеми під час спроби обробляти передані назви файлів з пробілами в bash. Це тому, що пробіли не вважаються такими ж, як у іменах файлів.
Чому Bash не розпізнає ім'я файлу з просторами?
У Bash, якщо ви введете кілька слів без символу (\) або цитат, вони будуть розглядати всі слова як аргументи. Це стосується всіх операцій, незалежно від того, чи змінюєте ви каталог на " cd " або намагаєтеся отримати доступ до файлів командами " cat ". Все, що ви напишете після їх використання, буде розглядатися як аргумент. Наприклад:
cat file name.txt
Примітка . Ім'я вашого файлу може бути будь-яким, окрім цієї статті, ми будемо використовувати "ім'я файлу.txt " як приклад.
Тут команда ' cat ' буде розглядати файл та ім'я як два аргументи, а не як один аргумент. Однак, якщо ви використовуєте символ втечі або цитати, оболонка bash розгляне це як єдиний аргумент, який буде " ім'ям файлу.txt ".
Ім'я файлу з просторами в Bash
Є кілька методів, які можна використовувати для пробілів у назві. Найкраща практика - це уникати пробілів для імен файлів у майбутньому. Простим методом буде перейменування файлу, до якого ви намагаєтеся отримати доступ та видалити пробіли. Деякі інші методи використовують одиничні або подвійні лапки на ім'я файлу з пробілами або використовують символ escape (\) прямо перед пробілом. Ми надамо методи з прикладними прикладами, щоб показати вам, як це працює.
Спосіб 1: Використання одинарних та подвійних цитат
- Утримуйте клавіші Ctrl + Alt і натисніть T, щоб відкрити термінал .
- Тепер змініть каталог, де знаходиться файл.
(Ви також можете перетягнути файл у термінал після команди " cat ", яка автоматично помістить цитати в шлях / каталог файлу)
CD робочий стіл
Зміна каталогу Примітка . Робочий стіл можна змінити на місце, до якого ви намагаєтесь отримати доступ.
- Введіть таку команду, щоб прочитати текстовий файл з пробілами в імені:
cat 'ім'я файлу.txt'
або
cat "ім'я файлу.txt"
Використання цитат, щоб уникнути пробілів у помилці імені - Одиночні та подвійні котирування призведуть до того ж. У деяких випадках потрібно спробувати і те й інше, щоб побачити, який з них працює.
Спосіб 2: Використання символу Escape Escape
- Утримуйте клавіші Ctrl + Alt і натисніть T, щоб відкрити термінал .
- Змініть каталог, де знаходиться файл, використовуючи наступну команду.
CD робочий стіл
Примітка . Поставте ім’я свого місця замість робочого столу.
- Тепер введіть команду і використовуйте символ втечі, де є місце в імені:
файл кота \ ім'я.txt
Використання символу втечі, щоб уникнути помилок пробілів
Бонус: використання котирувань та втечі
Іноді, коли ви використовуєте каталог у команді, можуть бути наслідки для використання лапок на загальному шляху. Це тому, що деякі команди на зразок ' mv ' або ' cp ' будуть вважати шлях джерелом файлу, якщо цитата використовується в цілому. Вам потрібно надати цитати як для вихідного, так і для цільового призначення окремо, щоб команди, такі як " cp ", могли нормально працювати. Ви також можете перевірити приклад нижче, який покаже вам, що використання символу втечі для шляху набагато складніше, і користувачі можуть помилитися з ним.