Làm thế nào để xử lý tên tập tin đi qua với không gian trong Bash
Linux có shell mặc định Bash (còn gọi là Bourne shell shell) để thực thi các lệnh cho hệ thống. Hầu hết các lập trình viên thích bash hơn cmd vì trình thông dịch dòng lệnh linh hoạt và mạnh mẽ mà bash cung cấp. Tuy nhiên, hầu hết người dùng vẫn sẽ gặp sự cố trong khi cố gắng xử lý chuyển tên tệp có dấu cách trong bash. Điều này là do các khoảng trắng không được coi là giống nhau trong bash vì chúng nằm trong tên tệp.
Tại sao tên tệp với Spaces không được Bash nhận ra?
Trong Bash, nếu bạn nhập nhiều từ mà không có ký tự thoát (\) hoặc trích dẫn, nó sẽ coi tất cả các từ là đối số. Điều đó áp dụng cho tất cả các hoạt động, cho dù bạn đang thay đổi thư mục bằng ' cd ' hoặc cố gắng truy cập các tệp bằng lệnh ' cat '. Bất cứ điều gì bạn viết sau khi sử dụng sẽ được coi là một đối số. Ví dụ:
tên tập tin con mèo
Lưu ý : Tên tệp của bạn có thể là bất cứ điều gì, nhưng đối với bài viết này, chúng tôi sẽ sử dụng tệp tin name.txt tên làm ví dụ.
Ở đây, lệnh ' cat ' sẽ coi tệp và tên là hai đối số chứ không phải là một đối số. Tuy nhiên, nếu bạn sử dụng ký tự thoát hoặc trích dẫn thì bash shell sẽ coi đó là một đối số duy nhất, đó sẽ là tệp tên tệp.txt.txt .
Tên tệp với Spaces in Bash
Có một vài phương thức có thể được sử dụng cho các khoảng trắng trong tên. Thực tiễn tốt nhất là tránh không gian cho tên tệp trong tương lai. Một phương pháp đơn giản sẽ là đổi tên tệp mà bạn đang cố truy cập và xóa khoảng trắng. Một số phương pháp khác đang sử dụng trích dẫn đơn hoặc kép trên tên tệp có dấu cách hoặc sử dụng ký hiệu esc (\) ngay trước dấu cách. Chúng tôi sẽ cung cấp các phương thức với các ví dụ được áp dụng để cho bạn thấy nó hoạt động như thế nào.
Phương pháp 1: Sử dụng trích dẫn đơn và đôi
- Giữ phím Ctrl + Alt và nhấn T để mở Terminal .
- Bây giờ thay đổi thư mục đến nơi tập tin được đặt.
(bạn cũng có thể kéo và thả tệp trong thiết bị đầu cuối sau lệnh ' cat ', sẽ tự động đặt trích dẫn trên đường dẫn / thư mục tệp)
máy tính để bàn cd
Thay đổi thư mục Lưu ý : Máy tính để bàn có thể được thay đổi thành vị trí bạn đang cố gắng truy cập.
- Nhập lệnh sau để đọc tệp văn bản có khoảng trắng trong tên:
mèo 'tên tập tin'
hoặc là
con mèo "tập tin name.txt"
Sử dụng trích dẫn để tránh khoảng trắng trong lỗi tên - Trích dẫn đơn và đôi sẽ dẫn đến cùng. Trong một số trường hợp, bạn cần thử cả hai và xem cái nào hoạt động.
Cách 2: Sử dụng Backlash Escape character
- Giữ phím Ctrl + Alt và nhấn T để mở Terminal .
- Thay đổi thư mục thành nơi đặt tệp bằng cách sử dụng lệnh sau.
máy tính để bàn cd
Lưu ý : Đặt tên vị trí của bạn thay cho Desktop.
- Bây giờ gõ lệnh và sử dụng ký tự thoát bất cứ nơi nào có không gian trong tên:
tập tin mèo \ name.txt
Sử dụng ký tự thoát để tránh lỗi khoảng trắng
Phần thưởng: Sử dụng Báo giá và Thoát
Đôi khi khi bạn đang sử dụng thư mục trong lệnh, có thể có hậu quả cho việc sử dụng trích dẫn trên đường dẫn tổng thể. Điều này là do một số lệnh như ' mv ' hoặc ' cp ' sẽ coi đường dẫn là nguồn tệp nếu trích dẫn được sử dụng trên toàn bộ. Bạn cần cung cấp trích dẫn cho cả nguồn và đích riêng lẻ để các lệnh như ' cp ' có thể hoạt động chính xác. Bạn cũng có thể kiểm tra ví dụ dưới đây sẽ cho bạn thấy rằng việc sử dụng ký tự thoát cho đường dẫn phức tạp hơn nhiều và người dùng có thể mắc lỗi với nó.