Làm sao xoá file/folder có tên chứa kí tự đặc biệt trên Linux ?

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

logo linux distribution

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/

Previous articleSự kiện “SysCon 2018 – Hanoi” (28/07/2018-HN)
Next articleChương trình ‘MISA – WEB DEVELOPER TRAINING 2018’ (HN)
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !