Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Linux

Cách Xử Lý Tên File Có Dấu Cách Trong Bash

Linux dùng shell Bash mặc định (Bourne again shell) thực thi lệnh. Lập trình viên thích Bash hơn cmd nhờ linh hoạt, trình thông dịch dòng lệnh mạnh. Tuy nhiên, nhiều người vẫn gặp khó khăn xử lý tên file có dấu cách trong Bash. Vì dấu cách trong Bash không xử lý như trong tên file.

Cách Xử Lý Tên File Có Dấu Cách Trong Bash

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

Trong Bash, gõ nhiều từ không có ký tự escape (\) hoặc ngoặc kép, Bash coi tất cả từ là tham số riêng biệt. Áp dụng mọi thao tác: cd, cat, v.v. Mọi thứ sau lệnh được coi là tham số. Ví dụ:

cat file name.txt
Cách Xử Lý Tên File Có Dấu Cách Trong Bash

Lưu ý: Tên file ví dụ là file name.txt.

Lệnh cat coi file và name là 2 tham số thay vì 1. Nếu dùng escape hoặc ngoặc, Bash coi là 1 tham số duy nhất: file name.txt.

Tên file có dấu cách trong Bash

Có vài phương pháp xử lý dấu cách. Thực hành tốt: tránh dấu cách trong tên file. Đơn giản: đổi tên file bỏ dấu cách. Cách khác: dùng ngoặc đơn/kép bao tên file, hoặc escape (\) trước dấu cách. Minh họa ví dụ áp dụng.

Phương pháp 1: Dùng ngoặc đơn và ngoặc kép

  1. Giữ Ctrl + Alt nhấn T mở Terminal.
  2. Chuyển thư mục đến nơi chứa file. (Có thể kéo thả file vào terminal sau lệnh cat, tự động thêm ngoặc cho đường dẫn).
    cd Desktop
    Cách Xử Lý Tên File Có Dấu Cách Trong Bash

    Lưu ý: Desktop thay bằng vị trí cần truy cập.

  3. Đọc file text có dấu cách trong tên:
    cat 'file name.txt'
    hoặc
    cat "file name.txt"
    Cách Xử Lý Tên File Có Dấu Cách Trong Bash
  4. Ngoặc đơn và kép cho kết quả giống nhau. Một số trường hợp cần thử cả hai xem cái nào hiệu quả.

Phương pháp 2: Dùng ký tự escape backslash

  1. Mở Terminal (Ctrl + Alt + T).
  2. Chuyển thư mục:
    cd Desktop
    Lưu ý: Thay Desktop bằng tên thư mục thực.
  3. Gõ lệnh, dùng escape trước mỗi dấu cách:
    cat file\ name.txt
    Cách Xử Lý Tên File Có Dấu Cách Trong Bash

Mẹo thêm: Sử dụng ngoặc và escape cho đường dẫn

Khi dùng đường dẫn trong lệnh, có hậu quả nếu bao toàn bộ đường dẫn trong ngoặc. Lệnh như mv, cp coi đường dẫn là file source nếu ngoặc toàn bộ. Cần ngoặc riêng cho source và destination để cp/mv hoạt động đúng. Escape cho đường dẫn phức tạp hơn, dễ sai. Xem ví dụ minh họa.

Cách Xử Lý Tên File Có Dấu Cách Trong Bash