perintah mv - jangan menimpa file


8

Saya ingin mvfile dan tidak menimpa duplikat. The -bsaklar hanya membuat file cadangan tunggal, sedangkan saya mungkin memiliki banyak.

Menurut mvhalaman manual :

Suffix cadangan adalah '~', kecuali ditetapkan dengan --suffix atau SIMPLE_BACKUP_SUFFIX. Metode kontrol versi dapat dipilih melalui opsi - cadangan atau melalui variabel lingkungan VERSION_CONTROL. Inilah nilainya:

tidak ada, mati
tidak pernah membuat cadangan (bahkan jika - backup diberikan)
bernomor, t
membuat cadangan bernomor
ada, nihil
bernomor jika cadangan bernomor ada, sederhana jika tidak
sederhana, tidak pernah
selalu membuat cadangan sederhana

Saya pikir saya ingin menggunakan opsi 'sudah ada, nihil' ... tapi saya tidak tahu bagaimana menyebutnya.

Jika perintah saya adalah:

mv $src $dest

Bagaimana saya bisa menerapkan opsi 'sudah ada, nihil'?


Jawaban ini memiliki respons yang baik tentang penggunaan cpalih-alih mv: unix.stackexchange.com/a/9902
Connor Leech

Jawaban:


6

Untuk mengaktifkan existingatau nil(atau salah satu opsi lain), berikan sebagai nilai untuk --backupopsi:

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

Diperingatkan bahwa ini tidak melakukan apa yang Anda inginkan:

$ 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’

Anda sebenarnya ingin 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~

yang tampaknya sangat samar. Apa opsi cadangan?
Connor Leech

1
@ConnorLeech untuk mengontrol pengaturan cadangan?
muru

0
mv --backup=existing $src $dest

atau

mv --backup=nil $src $dest

Setelah banyak upaya, saya membuat sintaks berfungsi - tetapi opsi nil tidak bekerja. --backup = t tidak. TERIMA KASIH!
BeMy Friend

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.