Đây là một vấn đề tiêu chuẩn với tên tệp / thư mục bắt đầu bằng các ký hiệu ít thông thường hơn. Vấn đề của bạn là mv đang xử lý --pycache-- dưới dạng tên tùy chọn dài (vì nó bắt đầu bằng -, cũng có các tùy chọn ngắn, chúng bắt đầu bằng -). Vui lòng xem manpage cho getopt để biết chi tiết về các tùy chọn dài và ngắn.
Cách giải quyết tiêu chuẩn trong tình huống này là sử dụng dấu gạch ngang kép trống - trước tất cả các đối số, cho biết lệnh (mv trong trường hợp của bạn, nhưng sẽ làm việc với người khác, ví dụ cp) để dừng xử lý những gì sau đây là tùy chọn và coi nó như là tùy chọn tranh luận.
Do đó, lệnh của bạn sẽ trở thành:
$ mv -- --pycache--/ __pycache__
và sẽ không thất bại.