Cách xử lý các không gian trong tên tệp trên Linux

Dec 14, 2024
Linux

Giống như hầu hết các hệ điều hành, Linux hỗ trợ các tên tệp với không gian trong đó. Nhưng sử dụng các tên tệp này trên dòng lệnh không phải lúc nào cũng đơn giản. Dưới đây là một số cách bạn có thể xử lý các tên tệp chứa không gian.

Tên tệp khiêm tốn
Tại sao không gian trong tên tệp Linux là một nỗi đau
Cách trích dẫn và thoát khỏi không gian
Cách khắc phục sự cố không gian tại nguồn của nó
Mở rộng tab giúp đối phó với không gian dễ dàng
Cách sử dụng tên tệp với không gian trong tập lệnh bash
Cách xa nhau, nhưng không bong tróc

Tên tệp khiêm tốn

Mọi thứ được lưu trữ trên máy tính của bạn ổ cứng cần phải có một cái tên. Không có tên, không có tệp nào tồn tại. Tất cả các ứng dụng và daemon được ra mắt khi máy tính của bạn khởi động và tất cả phần mềm bạn sử dụng, phải được xác định và lưu trữ trong một hệ thống tệp. Nhận dạng đó là tên của tệp.

Điều tương tự áp dụng cho các tệp mà bạn tạo hoặc cài đặt. Tất cả các tài liệu, hình ảnh và âm nhạc của bạn cần tên tệp. Không có tên tệp, không có tài sản kỹ thuật số nào của bạn có thể tồn tại. Bởi vì tên tệp rất quan trọng, Linux cố gắng hết sức để áp đặt càng ít quy tắc về thành phần của chúng càng tốt.

Trên Linux, một tên tệp có thể chứa bất kỳ ký tự nào ngoài việc chém về phía trước / "Và nhân vật null, 0x00 . Ký tự null được sử dụng để đánh dấu phần cuối của một chuỗi, vì vậy nó có thể có mặt trong chính chuỗi hoặc Linux sẽ cắt tên tệp ở vị trí của ký tự null. Các " / Tiếng chém phía trước được sử dụng làm dấu phân cách trong các đường dẫn thư mục.

Tên tệp nhạy cảm với trường hợp, và có thể dài tới 255 byte , bao gồm cả nhân vật null. Các đường dẫn thư mục có thể dài tới 4096 byte, bao gồm cả ký tự null. Lưu ý rằng đây là chiều dài của họ trong Byte , có thể không tương đương trực tiếp với nhân vật . Ví dụ, các ký tự Unicode 16 bit, lấy hai byte mỗi byte.

Những người đam mê điện toán retro và những người có ký ức dài sẽ biết rằng trong những ngày đầu của máy tính cá nhân, Hệ điều hành đĩa Microsoft Microsoft , Dos, không nhạy cảm với trường hợp và có giới hạn tên tệp là tám ký tự, cộng với ba ký tự sự mở rộng .

Bạn phải rất chu đáo và đôi khi sáng tạo khi bạn đặt tên cho các tập tin. Để so sánh, sự tự do mà chúng ta có ngày nay có nghĩa là chúng ta có thể đặt tên cho các tệp bất cứ điều gì chúng ta muốn, với rất ít suy nghĩ cho bất cứ điều gì khác ngoài mô tả mà chúng ta tạo ra cho tệp đó.

Nhưng với tên tệp, những gì chúng ta thường xuyên lên đường là các nhân vật chúng ta gõ, đó là khoảng trống giữa chúng.

Tại sao không gian trong tên tệp Linux là một nỗi đau

Các shell như bash sẽ giải thích một chuỗi các từ được phân tách không gian như các đối số lệnh riêng lẻ, không phải là một đối số duy nhất. Đây là một ví dụ, sử dụng chạm ĐẾN Tạo một tệp mới Được gọi là tệp mới của tôi.txt.

Như chúng ta có thể thấy, ls Cho chúng ta thấy rằng có ba tệp được tạo ra, một tệp có tên là My My, một loại khác được gọi là New New, và một tệp nữa được gọi là File File.txt.

Lưu ý rằng chạm didn phàn nàn hoặc ném một lỗi. Nó thực hiện những gì nó nghĩ rằng chúng tôi yêu cầu nó làm. Vì vậy, nó âm thầm đưa chúng ta trở lại dòng lệnh. Nếu chúng tôi không có động lực để kiểm tra, chúng tôi đã giành chiến thắng biết những điều mà thiên đường đã đi theo kế hoạch.

Để tạo tập tin chúng tôi muốn, chúng tôi đã phải báo giá hoặc thoát.

Cách trích dẫn và thoát khỏi không gian

Nếu chúng ta trích dẫn toàn bộ tên tệp, chạm Biết nó cần coi văn bản được trích dẫn như một đối số duy nhất.

Lần này chúng tôi nhận được các tập tin duy nhất mà chúng tôi mong đợi.

Chúng ta có thể nhận được kết quả tương tự nếu chúng ta sử dụng ký tự dấu gạch chéo ngược \ Để thoát khỏi không gian. Bằng cách thoát khỏi việc thoát khỏi các không gian mà họ không được đối xử như những nhân vật đặc biệt, đó là, các cuộc tranh luận, họ đã coi đó là những không gian cũ đơn giản.

Điều đó hoạt động, nhưng thoát khỏi không gian làm cho việc gõ tên tệp chậm hơn và dễ bị lỗi. Mọi thứ có thể trở nên thực sự xấu xí nếu bạn cũng có tên thư mục với không gian trong đó.

Lệnh đó sao chép một tệp văn bản duy nhất từ một thư mục có tên là Dir Dir One thành một thư mục có tên là Dir Dir Two, và lưu bản sao dưới dạng tệp BAK. Và nó là một ví dụ khá đơn giản.

Cách khắc phục sự cố không gian tại nguồn của nó

Nếu họ là các tệp của riêng bạn, bạn có thể đưa ra quyết định chính sách không bao giờ sử dụng không gian và tạo (hoặc Đổi tên số lượng lớn ) Tên tệp như thế này.

Phải thừa nhận rằng, đó là một giải pháp mạnh mẽ nhưng nó vẫn còn xấu xí. Có những tùy chọn tốt hơn, chẳng hạn như sử dụng dấu gạch ngang - "Hoặc nhấn mạnh" _ "Để tách các từ của bạn.

Cả hai điều này sẽ vượt qua vấn đề, và họ có thể đọc được. Nếu bạn không muốn thêm ký tự vào tên tệp của mình, bạn có thể sử dụng Lạc đà Để làm cho tên tệp của bạn có thể đọc được, như thế này:

Mở rộng tab giúp đối phó với không gian dễ dàng

Tất nhiên, việc áp dụng một quy ước đặt tên và gắn bó với nó sẽ chỉ giúp ích khi bạn xử lý các tệp của riêng bạn. Các tập tin đến từ bất kỳ nơi nào khác không có khả năng tuân theo quy ước đặt tên được thông qua của bạn.

Bạn có thể sử dụng mở rộng tab để giúp bạn chính xác điền vào các tên tệp của chúng tôi. Hãy nói rằng chúng tôi muốn xóa bỏ Tệp BAK mà chúng tôi đã tạo trong “Dir Two”, sử dụng RM .

Chúng tôi bắt đầu bằng cách gõ vào RM RM Dirv vì chúng tôi sử dụng RM Lệnh và chúng tôi biết tên thư mục bắt đầu bằng trực tiếp.

Nhấn khóa tab tab Tab khiến bash quét các trận đấu trong thư mục hiện tại.

Có hai thư mục bắt đầu với dòng dir dir, và trong cả hai trường hợp, nhân vật tiếp theo là một không gian. Vì vậy, bash thêm nhân vật ngược \ "Và một không gian. Bash sau đó đợi chúng tôi cung cấp nhân vật tiếp theo. Nó cần nhân vật tiếp theo để phân biệt giữa hai trận đấu có thể trong thư mục này.

Chúng tôi sẽ gõ một loại T, cho hai người khác, và sau đó nhấn Tab Tab, một lần nữa.

Bash hoàn thành tên thư mục cho chúng tôi và chờ chúng tôi gõ bắt đầu tên tệp.

Chúng tôi chỉ có một tệp trong thư mục này, vì vậy việc nhập chữ cái đầu tiên của tên tệp, là M M, là đủ để cho Bash biết tệp nào chúng tôi muốn sử dụng. Việc gõ vào m m và nhấn Tab Tab Tab hoàn thành tên tệp cho chúng tôi và và Enter Enter thực hiện toàn bộ lệnh.

Mở rộng tab giúp bạn dễ dàng đảm bảo bạn có được tên tệp đúng, và nó cũng tăng tốc điều hướng và gõ trên dòng lệnh nói chung.

CÓ LIÊN QUAN: Sử dụng hoàn thành tab để nhập các lệnh nhanh hơn trên bất kỳ hệ điều hành nào

Cách sử dụng tên tệp với không gian trong tập lệnh bash

Nó không có gì ngạc nhiên khi kịch bản Có chính xác các vấn đề tương tự với không gian trong tên tệp như dòng lệnh. Nếu bạn đang truyền một tên tệp như một biến, hãy chắc chắn rằng bạn trích dẫn tên biến.

Tập lệnh nhỏ này kiểm tra thư mục hiện tại cho các tệp phù hợp với mẫu tệp**.txt, và lưu trữ chúng trong một biến gọi là file_list . MỘT vòng được sử dụng để thực hiện một hành động đơn giản trên mỗi người.

Sao chép văn bản này vào một trình soạn thảo và lưu nó vào một tệp có tên là Files Files.sh. Sau đó sử dụng các Chmod yêu cầu để làm cho nó thực thi.

Chúng tôi đã có một số tập tin trong thư mục này. Một có tên tệp đơn giản và hai người còn lại sử dụng _ "Hoặc Dashes" - Thay vì không gian. Đây là những gì chúng ta thấy khi chúng ta chạy kịch bản.

Điều đó dường như hoạt động độc đáo. Nhưng hãy để thay đổi các tệp trong thư mục cho các tệp có chứa khoảng trống trong tên của chúng.

Mỗi từ trong mỗi tên tệp được xử lý như thể nó là một tên tệp một mình, và vì vậy tập lệnh không thành công. Nhưng tất cả những gì chúng ta cần làm để làm cho tập lệnh xử lý các khoảng trắng trong tên tệp là để trích dẫn Tệp $ biến bên trong vòng.

Lưu ý rằng dấu hiệu đô la $ Đây là bên trong các trích dẫn. Chúng tôi đã thực hiện thay đổi đó và lưu nó vào tệp tập lệnh Files Files.sh. Lần này, tên tệp được xử lý chính xác.

CÓ LIÊN QUAN: Cách xử lý một dòng tệp từng dòng trong tập lệnh bash linux

Cách xa nhau, nhưng không bong tróc

Tránh không gian trong tên tệp của riêng bạn sẽ chỉ đưa bạn đến nay. Nó không thể tránh khỏi rằng bạn sẽ gặp các tệp từ các nguồn khác có tên có chứa khoảng trắng. Rất may, nếu bạn cần xử lý các tệp đó trên dòng lệnh hoặc trong các tập lệnh, có nhiều cách để làm điều đó.


Linux - Các bài báo phổ biến nhất

Cách buộc người dùng thay đổi mật khẩu của họ trên Linux

Linux Nov 4, 2024

Ilya Titchev / Shutterstock [số 8] Mật khẩu là Keystone để bảo mật tài khoản. Chúng tôi sẽ chỉ cho bạn cách đặt lại mật kh..


Làm thế nào để sử dụng DB Trình duyệt cho SQLite trên Linux

Linux Dec 16, 2024

Fatmawati Achmad Zaenuri / Shutterstock [số 8] Trình duyệt DB cho SQLite Cho phép bạn xem và chỉnh sửa cơ sở dữ liệu SQLite tr..


Cách lấy Trình quản lý thiết bị đồ họa cho Linux

Linux Mar 17, 2025

Studio Châu Phi / Shutterstock.com [số 8] Có vô tận Các tiện ích dòng lệnh Linux hiển thị chi tiết về phần cứng máy tính ..


Docker cho người mới bắt đầu: Tất cả mọi thứ bạn cần biết

Linux Jun 15, 2025

Docker. [số 8] tạo ứng dụng đóng gói [số 8] gọi là container. Mỗi thùng chứa cung cấp một môi trường bị cô lập tương tự như m..


Cách sử dụng lệnh fsck trên linux

Linux Aug 18, 2025

Pixza Studio / Shutterstock [số 8] Tất cả dữ liệu quan trọng của chúng tôi nằm trong một hệ thống tệp thuộc loại này hoặc ..


Có gì mới trong OS Tiểu học 6 "Odin"

Linux Aug 14, 2025

Tiểu học, Inc. [số 8] Có Nhiều bản phân phối Linux. (Distros) rằng mọi người yêu cầu là sự thay thế tốt cho Windows hoặc ..


5 tính năng ubuntu linux bạn nên sử dụng

Linux Dec 6, 2024

Ubuntu Linux là tính năng phong phú và đi kèm với lựa chọn phần mềm được cài đặt sẵn. Đào sâu hơn một chút, và bạn sẽ tìm thấy một số tính năng b..


Cách nhận IP công khai của bạn trong tập lệnh bash linux

Linux Nov 9, 2024

Bạn sẽ cần địa chỉ IP bên ngoài của bạn nếu bạn muốn kết nối từ xa với máy tính của mình. Tìm nó bằng tay là dễ dàng, nhưng ở đây, cách tìm n�..


Thể loại