GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menyalin file dan subdirektori tersembunyi (dimulai dengan titik) di linux?

Selama Anda hanya mencari file dan folder tersembunyi di level A dan tidak mau, misalnya

A/b/.hidden

untuk disalin, Anda harus dapat menggunakan ini:

cp -r A/.[^.]* B

Ini pada dasarnya berarti menyalin apapun yang dimulai dengan . lalu karakter apa pun selain . Itu menyaring . dan ..

Sunting:Menghapus -p dari perintah cp karena Asker belum mengindikasikan bahwa dia ingin mempertahankan kepemilikan, tanggal, dll.


Masalah dengan A/.* adalah bahwa ada direktori . di A yang juga cocok dengan polanya.

Anda dapat mengaktifkan pola glob yang diperluas dan menggunakan yang berikut:

shopt -s extglob
cp -r A/.!(?(.)) B    

Itu cocok dengan file yang namanya dimulai dengan titik dan yang karakter keduanya bukan titik atau bukan apa-apa ( ?(.) tidak cocok dengan apa pun atau titik, !(...) meniadakannya, yaitu !(?(.)) cocok dengan yang lainnya daripada tidak sama sekali atau titik).


Untuk kasus seperti ini akan merekomendasikan menggunakan find bukannya cp seperti ini:

find A/ -type f -maxdepth 1 -name '.*' -exec cp -p {} B/ \;

Sintaks dasar terurai seperti ini:

  • find A/ -type f :find item dalam direktori A/ yang jenisnya adalah file (bukan direktori)…
  • -maxdepth 1 -name '.*' :Untuk ini untuk maxdepth dari 1 direktori dan yang name dimulai dengan . .
  • -exec cp -p {} B/ \; :Dan setelah file-file ini ditemukan, exec cp perintah dengan -p tandai untuk mempertahankan tanggal/waktu dari sumbernya ({} ) ke tujuan B/ .

Saya suka menggunakan maxdepth untuk menambahkan lapisan kontrol jadi saya tidak sengaja menyalin seluruh sistem file. Tapi jangan ragu untuk menghapusnya.


Linux
  1. Cara mengenkripsi file dengan gocryptfs di Linux

  2. Cara Zip File dan Direktori di Linux (dengan Contoh)

  3. Cara Mentransfer File di Linux dengan SCP dan Rsync

  1. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  2. Cara Menyalin / Memindahkan File dan Direktori di Linux dengan perintah "cp" dan "mv"

  3. Bagaimana cara chmod dan chown file tersembunyi di Linux?

  1. Cara Menemukan file besar linux dengan perintah find dan du

  2. Cara Mengarsipkan dan Mengompresi File di Linux

  3. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp