lệnh mv - không ghi đè tập tin


8

Tôi muốn mvtập tin và không ghi đè lên các bản sao. Công -btắc chỉ tạo một tệp sao lưu duy nhất, trong khi tôi có thể có nhiều.

Theo mvtrang người đàn ông :

Hậu tố sao lưu là '~', trừ khi được đặt bằng --suffix hoặc SIMPLE_BACKUP_SUFFIX. Phương pháp kiểm soát phiên bản có thể được chọn thông qua tùy chọn --backup hoặc thông qua biến môi trường VERSION_CONTROL. Dưới đây là các giá trị:

không, tắt
không bao giờ tạo bản sao lưu (ngay cả khi - dự phòng được đưa ra)
được đánh số, không
tạo bản sao lưu được đánh số
, không
được đánh số nếu sao lưu được đánh số tồn tại, đơn
giản, đơn giản, không bao giờ
luôn tạo bản sao lưu đơn giản

Tôi nghĩ rằng tôi muốn sử dụng tùy chọn 'hiện tại, không' ... nhưng tôi không thể tìm ra cách gọi đó.

Nếu lệnh của tôi là:

mv $src $dest

Làm cách nào tôi có thể triển khai tùy chọn 'hiện tại, không'?


Câu trả lời này có phản hồi tốt về việc sử dụng cpthay vì mv: unix.stackexchange.com/a/9902
Connor Leech

Câu trả lời:


6

Để bật existinghoặc nil(hoặc bất kỳ tùy chọn nào khác), hãy chuyển chúng làm giá trị cho --backuptùy chọn:

mv --backup=existing "$src" "$dest"
mv --backup=nil "$src" "$dest"

Được cảnh báo rằng điều này không làm những gì bạn muốn:

$ mkdir foo bar
$ cp blah/* foo
$ cp blah/* bar
$ mv --backup=nil bar/* foo/* -t blah
mv: will not overwrite just-created ‘blah/a.jpg’ with ‘foo/a.jpg’
mv: will not overwrite just-created ‘blah/b.ogv’ with ‘foo/b.ogv’
mv: will not overwrite just-created ‘blah/cd ef.JpG’ with ‘foo/cd ef.JpG’

Bạn thực sự muốn numbered/ t:

$ mv --backup=numbered bar/* foo/* -t blah
$ ls blah 
a.jpg  a.jpg.~1~  a.jpg.~2~  b.ogv  b.ogv.~1~  b.ogv.~2~  cd ef.JpG  cd ef.JpG.~1~  cd ef.JpG.~2~

Điều đó dường như thực sự khó hiểu. Tùy chọn sao lưu là gì?
Connor Leech

1
@ConnorL336 để kiểm soát cài đặt sao lưu?
muru

0
mv --backup=existing $src $dest

hoặc là

mv --backup=nil $src $dest

Sau nhiều lần thử, tôi đã làm cho cú pháp hoạt động - nhưng tùy chọn nil không hoạt động. --backup = t không. CẢM ƠN!
BeMy Friend 23/1/2015

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.