Chọn tên tệp unicode trong Bash


9

Đồng ý; giả sử tôi ở Bash và tôi có một vài tập tin trong một thư mục. Một số trong số chúng được đặt tên file☠☡☢☣.txt, nơi ☠☡☢☣bắt đầu với các ký tự unicode điên rồ không thể tin được. Làm thế nào tôi sẽ đề cập đến một trong số họ? Đẩy tab chỉ tự động hoàn thành filevà sau đó nó muốn bạn nhập một ký tự điên. Có cách nào để nói bash "chọn cái thứ 3 trong danh sách mà bạn vừa cho tôi" không?

Câu trả lời:


9

Tôi sẽ đề nghị bạn làm việc xung quanh nó và sử dụng một loại ràng buộc khóa khác với đường dẫn, chẳng hạn như Shift+ TAB. Thêm phần sau vào ~/.inputrc:

"\e[Z": menu-complete

Sau đó đưa ra một exec bash(điều này sau đó sẽ đọc các cài đặt trong của bạn ~/.inputrc). Là một lần, thay vì khởi động lại bash, bạn có thể thiết lập liên kết tương tự bằng cách chạy bind '"\e[Z": menu-complete'.

Bây giờ bạn có thể sử dụng ShiftTABcác chuỗi lặp đi lặp lại để xoay vòng các tên tệp khớp (thay vì phải nhập ký tự khớp tiếp theo). Điều này sẽ làm việc cho bất kỳ lệnh nào được ban hành (vì đó là lệnh đọc dòng tiêu chuẩn đang bị ràng buộc với ShiftTABchuỗi). Theo ghi nhận của OP, điều này không ảnh hưởng đến hành vi tiêu chuẩn của TABkhóa, nó chỉ thêm chức năng của ShiftTABcombo.


chỉnh sửa để đề cập đến việc sử dụng exec bash, vì đó là một bước khá quan trọng để làm cho nó hoạt động! ;)
Drav Sloan

Cảm ơn! Đối với bất cứ ai thắc mắc, điều này dường như không thay đổi chức năng bình thường; nó chỉ cần thêm tổ hợp phím shift-tab.
Erhannis

Chính xác, xin vui lòng để lại phím tab của tôi một mình !! :) Tôi sẽ buồn nếu điều đó thay đổi: D
Drav Sloan

3

Một cách khác đôi khi hoạt động là sử dụng ?hoặc đánh dấu các *ký tự đại diện và sau đó nhập một số phần còn lại của "nội dung" cho đến khi bạn nhận được một kết quả khớp duy nhất với hoàn thành tab.


2

Đi đến thư mục chứa file☠☡☢☣.txtvà nhập ls -i. Bạn sẽ thấy dòng:

xxxxx file☠☡☢☣.txt

nơi xxxxxlà số chỉ số file☠☡☢☣.txt. Đi vào:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

trong đó xxxxxtrên dòng trước là số chỉ mục nói trên thu được từ ls -i. Điều này đổi tên file☠☡☢☣.txtthành bettername.txt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.