bắt buộc sao chép khi -i được sử dụng trong bí danh bash


2

Tôi có một bí danh (giống như hầu hết mọi người, tôi nghĩ vậy) cp cp -i để ngăn chặn ghi đè.

Có cách nào để tôi có thể "hủy bỏ" điều này để buộc ghi đè lên chức năng sao chép không? cp -f không hoạt động.


2
Có những loại bí danh này nên được coi là một thói quen xấu; nó sẽ dạy bạn trở nên cẩu thả với các lệnh của bạn và rồi một ngày nào đó bạn sẽ ở trên một máy khác mà không có các bí danh này (hoặc thậm chí chỉ là một hệ điều hành mới được cài đặt nơi bạn chưa nhập .bashrc của mình) một sai lầm. Bạn cũng sẽ có thói quen chỉ cần tự động nhấn 'y' để nó không mang lại sự bảo vệ thực sự. Nếu bạn thực sự muốn loại bí danh này (và tôi nghĩ nó là một thứ vô nghĩa, nhưng với riêng họ), ít nhất hãy đặt tên cho nó một cái gì đó khác với lệnh dựng sẵn (gọi nó là 'mycp' hoặc một cái gì đó).
evilsoup

1
Vâng, có cp bí danh cho cp -i là xấu, xấu, xấu! Xin đừng làm điều đó. Tuy nhiên có một bí danh cho cp -i là hoàn toàn tốt (tôi đã sử dụng copy trong nhiều năm) - đừng gọi nó cp.
hlovdal

ý tưởng hay @hlovdal .. bí danh 'đi kèm với máy' cho mọi máy chủ tôi có. Tôi thích ý tưởng đổi tên nó
d-_-b

Câu trả lời:


7

Có nhiều cách để làm điều này (lấy từ đây ):

  1. tên đường dẫn đầy đủ của lệnh: /bin/cp -f source_file dest_file

  2. thay thế lệnh: $(which cp) -f source_file dest_file

  3. lệnh dựng sẵn: command cp -f source_file dest_file

  4. dấu ngoặc kép: "cp" -f source_file dest_file

  5. dấu ngoặc đơn: 'cp' -f source_file dest_file

  6. một ký tự dấu gạch chéo ngược: \cp -f source_file dest_file


2
chỉ cần lưu ý: \ cp sẽ (trong bash) chỉ bỏ qua bí danh, KHÔNG phải là một hàm cùng tên. I E : alias ls='echo "aliased"' ; function ls { echo "function" ; } ; ls ; \ls ; command ls : (ls) đầu tiên sẽ hiển thị "bí danh", thứ 2 (\ ls) chỉ bỏ qua bí danh và do đó hiển thị "hàm" và thứ 3 (lệnh ls) hiển thị đầu ra của ls thông thường
Olivier Dulac

Tôi cũng sẽ tránh # 3, như bạn có thể alias command=echo hoặc tương tự...
Izkata

Đây là một danh sách tốt đẹp. Bạn cũng có thể unalias cp
beroe

4

Các command dựng sẵn ghi đè bí danh và định nghĩa hàm, vì vậy command cp -f source_file dest_file sẽ thực hiện các mẹo.


Tuyệt vời, điều đó đã làm nó .. cảm ơn bạn!
d-_-b

Cách khác là gọi cp một cách rõ ràng, tức là sử dụng /bin/cp -f . . . . Bạn có thể dùng which cp để xác định đường dẫn thực tế sử dụng.
ernie
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.