Cách xử lý việc chuyển tên tệp bằng dấu cách trong Bash



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Linux có một shell mặc định Bash (hay còn gọi là Bourne lại 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ì tính linh hoạt và trình thông dịch dòng lệnh 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ố khi cố gắng xử lý việc chuyển các 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 như chúng trong tên tệp.



Tệp có khoảng trắng trong tên



Tại sao Tên tệp có Dấu cách không được Bash nhận dạng?

Trong Bash, nếu bạn nhập nhiều từ mà không có bỏ trốn ký 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 thao tác, 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‘ con mèo Lệnh ‘. Bất cứ điều gì bạn viết sau khi sử dụng chúng sẽ được coi là một đối số. Ví dụ:



tệp cat name.txt

Chạy lệnh mà không sử dụng ký tự thoát hoặc dấu ngoặc kép

Ghi chú : Tên tệp của bạn có thể là bất kỳ thứ gì nhưng đối với bài viết này, chúng tôi sẽ sử dụng “ file name.txt ”Làm ví dụ.

Đây ' con mèo Lệnh ‘sẽ xem xét tập tinTên dưới dạng hai đối số hơn là một đối số duy nhất. Tuy nhiên, nếu bạn sử dụng ký tự thoát hoặc dấu ngoặc kép thì bash shell sẽ coi đó là một đối số duy nhất, đó sẽ là “ file name.txt '.



Tên tệp có Dấu cách trong Bash

Có một số phương pháp có thể được sử dụng cho các khoảng trắng trong tên. Cách tốt nhất là tránh khoảng trắng 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ố gắng truy cập và xóa khoảng trắng. Một số phương pháp khác đang sử dụng các dấu ngoặc kép trên tên tệp có dấu cách hoặc sử dụng biểu tượng thoát () ngay trước dấu cách. Chúng tôi sẽ cung cấp các phương pháp 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 Báo giá đơn và Báo giá kép

  1. Giữ Ctrl + Alt phím và nhấn T mở Thiết bị đầu cuối .
  2. Bây giờ hãy thay đổi thư mục thành nơi chứa tệp.
    (bạn cũng có thể kéorơi vãi tệp trong thiết bị đầu cuối sau lệnh ‘ con mèo ‘, Sẽ tự động đặt các trích dẫn trên đường dẫn / thư mục tệp)

    cd Máy tính để bàn

    Thay đổi thư mục

    Ghi chú : Màn hình nền có thể được thay đổi thành vị trí bạn đang cố gắng truy cập.

  3. Gõ lệnh sau để đọc tệp văn bản có dấu cách trong tên:
    cat 'file name.txt'

    hoặc là

    cat 'file name.txt'

    Sử dụng dấu ngoặc kép để tránh dấu cách trong lỗi tên

  4. Trích dẫn đơn và kép sẽ dẫn đến kết quả giống nhau. Trong một số trường hợp, bạn cần thử cả hai và xem cái nào hiệu quả.

Phương pháp 2: Sử dụng ký tự thoát backlash

  1. Giữ Ctrl + Alt phím và nhấn T mở Thiết bị đầu cuối .
  2. Thay đổi thư mục thành nơi chứa tệp bằng cách sử dụng lệnh sau.
    cd Máy tính để bàn

    Ghi chú : Đặt tên vị trí của bạn thay cho Màn hình nền.

  3. Bây giờ hãy gõ lệnh và sử dụng bỏ trốn ký tự ở bất kỳ nơi nào có khoảng trắng trong tên:
    tệp 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ả khi sử dụng dấu ngoặc kép trên đường dẫn tổng thể. Điều này là do một số lệnh như ‘ mv ' hoặc là ' cp ‘Sẽ coi con đường là nguồn tập tin nếu báo giá được sử dụng toàn bộ. Bạn cần cung cấp báo giá cho cả hai nguồnNơi Đến riêng lẻ để các lệnh như ‘ cp ‘Có thể hoạt động bình thường. 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ó.

Sự khác biệt giữa trích dẫn và ký tự thoát

2 phút đọc