Cách xoá file/folder có tên chứa kí tự đặc biệt trên Linux

Làm thế nào để xoá file/folder có tên chứa kí tự đặc biệt trên Linux? Bài viết hôm nay sẽ giới thiệu tới bạn 4 cách hữu hiệu giúp loại bỏ ký tự đặc biệt trên các file này. Các kí tự đặc biệt trong tên file/folder khiến lỗi phát sinh:
  • \
  • ;
  • &
  • $
  • ?
  • *
  • >
  • <
  • Khoảng trắng

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

Cách hỗ trợ việc xoá file có tên kí tự đặc biệt trên Linux

Cách 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'

Cách 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

Cách 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.

Cách 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"
Chúc bạn xoá file/folder có tên chứa kí tự đặc biệt trên Linux thành công! Nguồn: cuongquach