Як поводитися з просторами в іменах файлів на Linux

Dec 14, 2024
Linux,

Як і більшість операційних систем, Linux підтримує імена файлів із пробілами. Але використання цих імен файлів у командному рядку не завжди просто. Ось кілька способів обробки імен, що містять файли, що містять пробіли.

Скромне ім'я файлу
Чому простори в назвах файлів Linux - це біль
Як цитувати та уникнути просторів
Як виправити проблему з простором у його джерелі
Розширення вкладок полегшує справу з просторами
Як використовувати імена файлів з пробілами в скриптах баш
Розташований, але не лукавий

Скромне ім'я файлу

Все, що зберігається на вашому комп’ютері жорсткий диск Потрібно мати ім'я. Без імені файлів не існує. Усі програми та демони, які запускаються, коли ваш комп'ютер збільшується, і все програмне забезпечення, яке ви використовуєте, потрібно ідентифікувати та зберігати у файловій системі. Ця ідентифікація - це ім'я файлу. "

Те саме стосується файлів, які ви створюєте або встановлюєте. Усі ваші документи, зображення та музика потребують імен файлів. Без імен файлів жоден з ваших цифрових активів не міг існувати. Оскільки імена файлів настільки важливі, Linux намагається нав'язати якомога мало правил щодо їх складу.

На Linux ім'я файлу може містити будь -якого персонажа, крім передньої косої риси " / ”І нульовий персонаж, 0x00 . Нульовий символ використовується для позначення кінця рядка, тому він не може бути присутнім у самому рядку, або Linux урізав би ім'я файлу в положенні нульового символу. " / ”Нижня косою русі використовується як сепаратор у каталогах.

Імена файлів залежать від регістру, і може бути до 255 байт , включаючи нульовий символ. Шляхи каталогу можуть бути довгими до 4096 байт, включаючи нульовий символ. Зауважте, що це їх довжина в байт , що може не прирівняти безпосередньо до персонажі . Наприклад, 16-бітні символи Unicode візьміть по два байти кожен.

Ентузіасти ретро-обчислення та ті, хто має довгі спогади, знають, що в перші дні персональних комп’ютерів, Операційна система Microsoft Disk , Дос, був нечутливим до регістру і мав ліміт імені з восьми символів плюс три символи розширення .

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

Але з назвами файлів, те, що нас піднімає найчастіше, - це не ті персонажі, яких ми вводимо, це пробіли між ними.

Чому простори в назвах файлів Linux - це біль

Такі снаряди, як Bash, інтерпретуватимуть простір, розділений у просторі слів як індивідуальні аргументи команд, а не один аргумент. Ось приклад, використовуючи торкатися до Створіть новий файл називається "Мій новий файл.txt."

Як ми бачимо, ЛС Показує нам, що створені три файли, один під назвою "мій", інший під назвою "новий", і ще один під назвою "file.txt".

Зауважте, що торкатися Не скаржився і не кинув помилку. Він здійснює те, що, як думає, ми просимо це зробити. Тож він мовчки повертає нас до командного рядка. Якщо ми не мотивовані перевірити, ми не знаємо, що речі не пішли за планом.

Щоб створити бажаний файл, ми повинні цитувати чи втекти.

Як цитувати та уникнути просторів

Якщо ми цитуємо все ім'я файлу, торкатися знає, що потрібно ставитися до цитованого тексту як до єдиного аргументу.

Цього разу ми отримуємо єдиний файл, який ми очікуємо.

Ми можемо отримати той самий результат, якщо ми використовуємо символ зворотної коси " \ ”Щоб уникнути пробілів. "Втеча" простори, з якими вони не трактуються як спеціальні персонажі, тобто аргументи, вони вважаються звичайними старими просторами.

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

Ця команда копіює єдиний текстовий файл із каталогу під назвою "Dir One" у каталог під назвою "Дір два", і зберігає копію як файл BAK. І це досить простий приклад.

Як виправити проблему з простором у його джерелі

Якщо вони є вашими власними файлами, ви можете приймати рішення про політику ніколи не використовувати простори та створити (або Основа перейменуйте ) такі назви файлів.

Справді, це міцне рішення, але все ще некрасиво. Є кращі варіанти, такі як використання тире " - "Або підкреслює" _ ”Відокремити свої слова.

Обидва з них підлягатимуть проблему, і вони читаються. Якщо ви не хочете додавати додаткові символи до імен файлів, ви можете використовувати Верблюд Щоб зробити назви файлів читалими, як це:

Розширення вкладок полегшує справу з просторами

Звичайно, прийняття конвенції про іменування та дотримання її допоможе лише тоді, коли ви маєте справу з власними файлами. Файли, які надходять з будь -якого іншого місця, навряд чи будуть дотримуватися вашої прийнятої конвенції про іменування.

Ви можете використовувати розширення вкладок, щоб допомогти вам точно «заповнити» імена файлів для нас. Скажімо, ми хочемо видаляти Файл BAK, який ми створили в "Дірм Другий", використовуючи rm .

Ми починаємо з введення "rm dir", оскільки ми використовуємо rm Команда, і ми знаємо, що ім'я каталогу починається з "Дір".

Натискання клавіші "вкладки" змушує Bash сканувати відповідність у поточному каталозі.

Є два каталоги, які починаються з "DIR", і в обох випадках наступний персонаж - це простір. Тож Баш додає персонажа зворотного побою " \ І простір. Потім Баш чекає, коли ми надаємо наступного персонажа. Потрібен наступний персонаж, щоб розмежувати два можливі відповідності в цьому каталозі.

Ми введемо "T" для "двох", а потім ще раз натиснемо "вкладку".

Bash завершує назву каталогу для нас і чекає, коли ми введете початок імені файлу.

У нас є лише один файл у цьому каталозі, тому набираючи першу букву імені файлу, "M", достатньо, щоб Баш дізнався, який файл ми хочемо використовувати. Введення "M" та натискання "Tab" завершує ім'я файлу для нас, а "Enter" виконує всю команду.

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

Пов'язаний: Використовуйте завершення вкладки, щоб швидше вводити команди в будь -якій операційній системі

Як використовувати імена файлів з пробілами в скриптах баш

Це не дивно, що сценарії мають точно ті самі проблеми з пробілами в іменах файлів, як і командний рядок. Якщо ви передаєте ім'я файлу як змінну, переконайтеся, що ви цитуєте назву змінної.

Цей маленький сценарій перевіряє поточний каталог на файли, які відповідають шаблону файлу "*.txt", і зберігає їх у змінній, що називається file_list . для петля використовується для виконання простої дії на кожній з них.

Скопіюйте цей текст у редактор та збережіть його у файл під назвою "files.sh." Потім використовуйте з чмод командування щоб зробити його виконуваним.

У нас є кілька файлів у цьому каталозі. Один має просте ім'я файлу, а інші два використовують підкреслення " _ "Або тире" - ”Замість пробілів. Це те, що ми бачимо, коли запускаємо сценарій.

Це, здається, працює добре. Але давайте змінимо файли в каталозі для файлів, що містять пробіли у своїх іменах.

Кожне слово в кожному імені файлу обробляється так, ніби воно було імені файлу самостійно, і тому сценарій не вдається. Але все, що нам потрібно зробити, щоб зробити простори обробки сценаріїв у іменах файлів - це цитувати $ файл змінна всередині для петля.

Зауважте, що знак долара “ $ ”Всередині цитат. Ми внесли цю зміну і зберегли її у файлі сценарію "files.sh". Цього разу імена файлів обробляються правильно.

Пов'язаний: Як обробити файл за рядком у сценарії Linux Bash

Розташований, але не лукавий

Уникнення пробілів у власних іменах файлів забирає вас лише поки що. Неминуче ви зіткнетесь з файлами з інших джерел з іменами, що містять пробіли. На щастя, якщо вам потрібно обробляти ці файли в командному рядку або в сценаріях, є прості способи зробити це.


Linux, - Найпопулярніші статті

Як знайти і видалити Брокен Symlinks на Linux

Linux, Nov 12, 2024

Fatmawati Achmad Zaenuri / Shutterstock Символічні посилання на Linux є фантастичною особливістю, але вон�..


The Best Дистрибутиви Linux без Systemd

Linux, Feb 24, 2025

BMJ / Shutterstock.com Коли приймаються домінуючі дистрибутиви систематичний , Розкольник..


Як отримати графічний диспетчер пристроїв для Linux

Linux, Mar 17, 2025

Africa Studio / Shutterstock.com Є нескінченні Утиліти командного рядка Linux, які показують деталі �..


Native Gaming на Linux Можливо вмирання, і це добре

Linux, Sep 27, 2025

DC Studio / Shutterstock.com Точний Парова колода , Оголошено в серпні 2021 року, має Linux Gaming Circles,..


Які недоліки переходу на Linux?

Linux, Oct 27, 2025

Ларрі Евінг і GIMP Linux євангелісти (як я), швидкі, щоб вказати на багато переваг перемикан..


Цей новий Linux Gaming Laptop Має Спекуляції на Run Anything

Linux, Oct 20, 2025

Комп'ютери JUNO Linux і ігри починають об'єднатися набагато більше. Точний Парова колода з�..


Як вбити процес Linux за номером порту

Linux, Oct 4, 2025

Щоб вбити процес Linux, вам потрібен його ідентифікатор або його назва. Якщо все, що ви знаєте, це порт, яким в..


Як інтегрувати програми та сценарії до робочого столу Linux

Linux, Oct 10, 2025

У Linux додаток без настільного файлу не інтегрується з вашим робочим середовищем. Більшість програм надаю�..


Категорії