Bagaimana cara mengganti semua konten dari satu folder dengan yang lain

23

Saya punya folder olddan new.

Saya ingin mengganti semua konten old/*menjadi new/*. Mungkin ada banyak subdirektori dalam folder itu.

Tetapi mungkin ada beberapa file yang tidak ada new/*tetapi ada di old/*dalamnya, jadi saya ingin mereka tetap seperti semula.

Bagaimana saya bisa melakukannya dari shell Linux?

pengguna105919
sumber

Jawaban:

18

rsync mungkin akan menjadi pilihan yang lebih baik di sini. Sesederhana rsync -a subdir / ./. periksa jawaban unix.stackexchage ini untuk solusi yang lebih baik

gunakan -fdengan cpperintah

cp -fR /source/files /dest

tekan cp untuk menimpa "prompt ..

Untuk mengganti alias cp, Anda cukup melampirkannya dalam tanda kutip:

 'cp' -rf ./source/* /destination/

untuk informasi lebih lanjut ikuti tautan ini:

http://www.wallpaperama.com/forums/cp-command-problems-forcing-overwrite-using-cp-command-t5685.html

http://bytes.com/topic/unix/answers/865372-force-cp-overwrite-existing-directory

Niranjan Singh
sumber
23

Gunakan rsync. Ini akan menyinkronkan direktori dalam satu arah. Jadi, jika Anda ingin memperbarui oldfolder Anda dengan segala sesuatu dari new, tetapi simpan apa yang ada di sana, gunakan saja:

rsync -avh --dry-run /path/to/new/ /path/to/old/

Ini akan, dalam contoh pertama, hanya menampilkan daftar file yang akan ditransfer. Dalam hal ini: Semua yang ditemukan di newakan disalin old, kecuali sudah ada di sana. Semuanya oldtetap seperti apa adanya.

Jika itu terlihat baik bagi Anda, hapus --dry-runargumen untuk mengirimkannya secara nyata.

The -avhbendera hanya mengaktifkan mode arsip (yang akan melestarikan cap waktu, dll), bertele-tele dan terbaca-manusia berkas-ukuran. Tidak ada yang akan dihapus dari tujuan kecuali Anda menentukan --deletebenderanya. Konsultasikan man rsyncuntuk informasi lebih lanjut.

slhck
sumber