Làm sao xoá file/folder có tên chứa kí tự đặc biệt trên Linux ? – Cuongquach.com | Khi bạn sử dụng Linux, hẳn sẽ có một số tình huống mà các file/folder trên Linux được vô tình tạo ra với cái tên chứa các kí tự đặc biệt. Các file này thường gây khó khăn cho việc xoá bỏ hoặc copy/move chúng đi vì bị lỗi phát sinh từ tên chứa kí tự đặc biệt.
Các kí tự đặc biệt trong tên file/folder khiến lỗi phát sinh:
- –
- —
- \
- ;
- &
- $
- ?
- *
- >
- <
- Khoảng trắng
Có thể bạn quan tâm chủ đề khác
– Cấu hình VLAN Tagging trên Linux Interface
– Ghi log lệnh được thực thi trên Linux
– Hướng dẫn cài đặt Docker trên CentOS 7
– Link Download Ubuntu 18.04 LTS CD/DVD
Contents
Nguyên nhân
Nguyên nhân tại sao bạn không thể xoá các file có kí tự đặc biệt trong tên. Đơn giản là vì shell trên Linux nhận diện các kí tự đặc biệt như là một cú pháp câu lệnh. Nên khi bạn thực hiện xoá/copy các file có tên kí tự đặc biệt thì sẽ phát sinh lỗi.
Ví dụ
# touch '>file' # rm >file rm: missing operand
Vậy chúng ta có bao nhiêu cách hỗ trợ việc xoá file có tên kí tự đặc biệt trên Linux ?! Có 4 cách đơn giản như sau. (Xem thêm: Hướng dẫn xoá file hoặc thư mục trên Linux bằng lệnh RM)
1. Đặt tên file trong dấu nháy đơn
Dấu nháy đơn (‘..’) khi được dùng để bao bọc tên file có kí tự đặc biệt sẽ bỏ qua các giá trị đại diện sử dụng trong cái tên của file tập tin.
# rm -v '>file' rm: remove regular empty file `>file'? y removed `>file'
2. Sử dụng dấu (\) – backslash
Bạn chỉ cần thêm dấu (\) trước các kí tự đặc biệt trong tên file.
# touch '$file' # rm "\$file" rm: remove regular empty file `$file'? y
# touch 'vi du khoang trang.txt' # rm vi\ du\ khoang\ trang.txt rm: remove regular empty file `vi du khoang trang.txt'? y
3. Sử dụng dấu (./) trước tên file
# rm -v ./-file removed `./-file'
Khi đặt dấu (./) trước tên file thì rm sẽ không kiểm tra các kí tự đặc biệt trong tên có phải là option lệnh rm hay không.
4. Đặt dấu (–) trước tên file
Khi bạn đặt kí tự (–) trước tên của của file trên Linux, thì ‘—‘ được xem như 1 tín hiệu báo cho OS ngưng xem xét các kí tự đặc biệt đằng sau sử dụng như một biến/kí tự xử lý bởi shell. Bất kì tên, kí tự hậu tố sau ‘—‘ sẽ được xem là tên file.
# rm -v -- -file # rm -v -- --file # rm -v -- "@#$%^&file" # rmdir -v -- "--dirnameHere"
Vậy là bạn đã biết cách để xoá các file/folder có cái tên chứa những kí tự đặc biệt gây khó chịu trên Linux phải không nào. Chúc các bạn thành công.
Nguồn: https://cuongquach.com/