Các mở rộng cú đúp cú pháp chấp nhận dấu phẩy, nhưng nó không chấp nhận một không gian sau dấu phẩy. Trong nhiều ngôn ngữ lập trình, không gian sau dấu phẩy là phổ biến, nhưng không phải ở đây. Ở Bash, sự hiện diện của một không gian không trích dẫn ngăn cản việc mở rộng niềng răng được thực hiện.
Xóa không gian và nó sẽ hoạt động:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
Mặc dù hoàn toàn không cần thiết, lưu ý rằng bạn có thể di chuyển dấu vết .bin
bên ngoài niềng răng:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
Nếu bạn muốn kiểm tra hiệu quả của việc mở rộng niềng răng, bạn có thể sử dụng echo
hoặc printf '%s '
, hoặc printf
với bất kỳ chuỗi định dạng nào bạn thích, để làm điều đó. (Cá nhân tôi chỉ sử dụng echo
cho việc này, khi tôi ở Bash, bởi vì nội dung của Bashecho
không mở rộng các chuỗi thoát theo mặc định, và do đó rất phù hợp để kiểm tra lệnh nào sẽ thực sự chạy.) Ví dụ:
ek@Io:~$ echo cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
cp /home/ek/some/dir/my-file-to-rename.bin /home/ek/some/dir/new-name-of-file.bin