GNU/Linux >> Belajar Linux >  >> Linux

Salin File yang Dimodifikasi Setelah Tanggal Tertentu Menggunakan Cp Switch?

Ketika saya menjalankan perintah find . -mtime -60 Saya mendapatkan daftar file yang dimodifikasi dalam 60 hari terakhir.

Jadi ketika saya menjalankan find . -mtime -60 -exec cp {} /tmp/1 \; Saya dapat menyalin file-file ini ke direktori baru untuk diproses

Namun jika saya ingin mempertahankan stempel waktu, saya tidak dapat menyalin hanya file yang diperlukan ketika saya menjalankan find . -mtime -60 -exec cp -LR --preserve=timestamps {} /tmp/2 \;

Yang akhirnya terjadi adalah SEMUA file di direktori sumber disalin, bukan hanya file yang saya butuhkan.

Adakah solusi di sini?

Jawaban yang Diterima:

Apa yang terjadi di sini adalah ketika Anda menggunakan -R pilihan untuk cp dan menyediakan direktori sebagai argumen, ia menyalin semuanya dalam direktori itu. Selain itu, ini tidak akan mempertahankan struktur direktori karena file apa pun di direktori yang lebih rendah akan disalin langsung ke /tmp/2 . Ini mungkin yang Anda inginkan (lihat jawaban X Tian untuk cara melakukannya dengan cara ini), tetapi berhati-hatilah jika ada file yang memiliki nama yang sama, yang satu akan menimpa yang lain di tujuannya.

Untuk mempertahankan struktur direktori, Anda dapat menggunakan cpio :

find . -mtime -60 -print0 | cpio -0mdp /tmp/2

Jika -0 (atau setara) opsi tidak tersedia, Anda dapat melakukan ini, tetapi hati-hati, tidak ada nama file Anda yang berisi baris baru:

find . -mtime -2 | cpio -mdp /tmp/2

cpio juga harus mendukung -L pilihan, meskipun hati-hati dengan ini karena dalam beberapa kasus dapat menyebabkan infinite loop.


Linux
  1. Bind mount pengguna SFTP setelah menggunakan chroot

  2. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  3. Menghitung jumlah file dalam direktori menggunakan C

  1. Dapatkan mtime file tertentu menggunakan Bash?

  2. Cara menyalin banyak file secara bersamaan menggunakan scp

  3. Menemukan dan menghapus file dengan tanggal tertentu

  1. Cara Mengekstrak File Tar ke Direktori Tertentu atau Berbeda di Linux

  2. Cara Mengunggah atau Mengunduh File/Direktori Menggunakan sFTP di Linux

  3. Salin N File Pertama Di Direktori Berbeda?