Sao chép tập tin hiện có mà không cần xác nhận?


16

Tôi cần sao chép và ghi đè lên một lượng lớn tệp, tôi đã sử dụng lệnh sau:

# cp -Rf * ../

Nhưng sau đó, bất cứ khi nào một tệp có cùng tên tồn tại trên thư mục đích, tôi nhận được câu hỏi này:

cp: overwrite `../ibdata1'? 

Vấn đề là tôi có khoảng 200 tệp sẽ bị ghi đè và tôi không nghĩ rằng nhấn Y then Enter200 lần là cách đúng đắn để làm điều đó.

Vì vậy, cách đúng đắn để đó là gì?

Câu trả lời:


36

Bạn có thể làm yes | cp -rf myxx, hoặc nếu bạn làm nó như root - .bashrc hoặc .profile của bạn có bí danh từ cp đến cp -i, hầu hết các hệ thống hiện đại đều làm điều đó với hồ sơ gốc.

Bạn có thể tạm thời bỏ qua một bí danh và sử dụng phiên bản không có bí danh của lệnh bằng cách thêm tiền tố vào \, ví dụ \ cp bất cứ điều gì


4
+1 để chỉ cách bỏ qua bí danh. Bị cám dỗ đến -1 cho giải pháp lực lượng vũ phu.
Hennes

5
+! cho yeschức năng đường ống - rất tiện dụng!
Andrew Newby

14

Bạn có nhận ra rằng RHEL và CentOS đã cố gắng bảo vệ người dùng mới làm quen bằng cách thiết lập bí danh cho người dùng root để ngăn chặn việc vô tình ghi đè và xóa các tệp?

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

Công -itắc là những gì yêu cầu xác nhận khi sửa đổi hoặc xóa các tệp hiện có. Bởi vì việc mở rộng bí danh xảy ra trước khi thực hiện lệnh, ngay cả việc sử dụng công --force -f tắc vẫn sẽ yêu cầu xác nhận.

Bạn có thể xóa bí danh vĩnh viễn bằng cách chỉnh sửa /root/.bashrctệp, xóa bí danh trong thời gian của phiên bằng unalias cp hoặc cho một lệnh duy nhất sử dụng một trong các:

  • sử dụng đường dẫn đầy đủ /bin/cp
  • sử dụng dấu ngoặc kép "cp"hoặc 'cp'xung quanh lệnh
  • sử dụng từ khóa lệnh, vd command cp
  • thoát lệnh \cp
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.