Làm thế nào để sao chép hoặc di chuyển các tập tin mà không được yêu cầu ghi đè?


8

Những gì tôi đã thử:

root@host [/home1]# cp -f hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C

Họ luôn hỏi tôi có muốn ghi đè không. Sử dụng mv cũng không hoạt động. Vậy tôi phải làm sao?

Những thứ khác tôi đã thử:

root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C
root@host [/home1]# cp -force hello /home3
cp: invalid option -- 'o'
Try `cp --help' for more information.
root@host [/home1]# cp --remove-destination hello /home4
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination -r hello /home3
cp: overwrite `/home3/hello/.buildpath'? ^C
root@host [/home1]#

2
Bạn có thể cho đầu ra của alias cp?
Raphael AhDR

2
Ngoài ra, type cpcũng như ls -ltrên một trong các tệp mục tiêu có thể cung cấp thông tin hữu ích.
một CVn

cp là bản sao. Được rồi nó có thể là một bí danh. Vậy lệnh là gì?
dùng4951

Câu trả lời:


13

cpdường như được đặt bí danh cho một cái gì đó gây ra vấn đề, hoặc nó là một chức năng. Bạn có thể xóa bí danh / hàm:

unalias cp
unset -f cp

Nếu bạn chỉ muốn ghi đè nó ngay bây giờ, bạn có thể sử dụng commandlệnh để ghi đè bất kỳ định nghĩa bí danh / hàm:

command cp [...]

Nếu bạn hoàn toàn loại bỏ điều này, có lẽ bạn phải xem trong các tệp khởi động bash của mình.


3
\cpcũng sẽ tránh bí danh.
sendmoreinfo 18/07/13

Yup, bạn đúng which cp => alias cp='cp -i; /bin/cp. Cảm ơn Amazon!
Gerry

8

Đối với lực lượng ghi đè mà không yêu cầu bạn nên sử dụng lệnh mv và tùy chọn "-f", sử dụng man để xem các tùy chọn.

người đàn ông

   -f, --force
          do not prompt before overwriting

Thí dụ:

mv -f test.tmp test.txt

1

Hãy thử cp -rv / sourcefileordirectory / Destinationfolder


sẽ làm việc của anh ấy? -Rv có nghĩa là gì?
dùng4951

-rvcó nghĩa là đệ quy và dài dòng. Vì vậy, điều này sẽ sao chép các tập tin và thư mục con, và xuất tiến trình đến thiết bị đầu cuối.
JNat

1

Bạn có thể có một bí danh cho cp. Bạn có thể ghi đè bí danh này bằng cách thực hiện:

\cp -f hello /home3

Điều này có sự xuất hiện của việc không sửa đổi thiết lập bí danh của bạn, vì nó đang ghi đè nó chỉ cho cuộc gọi này.


0

Bạn có thể sử dụng yes, được thiết kế cho loại điều này. Nó sẽ tự động in yvà trả lời những lời nhắc này cho bạn:

yes | cp -f hello /home3

0

chỉ cần thực hiện alias cp=cpvà nó sẽ ghi đè lên mục tiêu mà không cần hỏi trong phiên này. Nếu bạn muốn nó được lưu trữ dưới dạng hành vi tiêu chuẩn, hãy lưu trữ nó trong của bạn ~/.bashrc.

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.