Bagaimana saya bisa menyalin file secara rekursif tanpa menimpa izin yang ada?

9

Ketika saya menyalin file dari satu direktori ke direktori lain, izin direktori akan diatur ulang (misalnya: dari 0755 hingga 0775), dan ini menyebabkan masalah, memaksa saya untuk kembali dan secara manual mengatur ulang izin direktori. Saya sedang melakukancp -r /source/directory /destination/directory

Saya ingin menyalin semua file dan direktori baru, tetapi tidak menimpa izin direktori yang ada.

Eva
sumber

Jawaban:

5

Untuk mempertahankan tautan, Anda dapat menggunakan cp( manpage untuk cp ) dengan -dbendera, yang setara dengan--no-dereference --preserve=links .

Untuk menggabungkan ini dengan -pdan -Rbendera Anda dapat menggunakan bendera arsip -a.

Val
sumber
7

Tambahkan flag -p

cp -pR /source/dir /dest/dir

Dari man cp:

-p     same as --preserve=mode,ownership,timestamps
vfbsilva
sumber
2

Saya ~/.bashrctelah dimodifikasi untuk mengandung

alias cp='cp -i --preserve=all'

Ini berarti ketika saya menggunakan cp, itu juga akan meminta sebelum menimpa (-i ), dan mempertahankan semua (yaitu mode, kepemilikan, cap waktu, dan jika mungkin atribut tambahan: konteks, tautan, xattr).

Anda selalu dapat mengubahnya ke hanya modealih-alih alljika Anda suka, tapi saya suka memiliki alias ini untuk mengubah default cp.

Sparhawk
sumber