Saya memiliki banyak gambar dari hard drive lama yang saya coba atur. Jika saya menjalankan ls -l
, saya perhatikan semua file ini memiliki tanggal pembuatan 2012 atau sebelumnya. Idealnya, saya ingin memindahkan ini ke hard drive kedua komputer saya, yang tidak diatur untuk dipasang secara otomatis. Lebih disukai, saya bisa melakukan ini semua sebagai batch dengan beberapa perintah yang dihubungkan bersama. Sejauh ini, saya memiliki ls -l | grep -i 2012
yang hanya memuntahkan file dengan 2012 pada tanggal yang disediakan oleh ls -l
. Sekarang, triknya adalah memasukkan cp
semua file itu ke direktori baru. Saya tidak yakin ke mana harus pergi berikutnya dengan ini karena setiap file harus disalin. Apa yang akan menjadi set perintah saya berikutnya?
sumber
Jika Anda memiliki file yang lebih baru pada disk lama yang ingin Anda abaikan, saya akan melakukannya seperti ini
Berikut adalah contoh perintah untuk ini, yang menganggap Anda ingin mempertahankan hierarki direktori dari disk lama di disk baru (
cpio
adalah perintah salin, mirip dengantar
ataupax
):sumber
Saya pikir mungkin masalah ini sangat sama dengan Anda, Anda juga dapat memeriksanya: Membuat sub-direktori dan mengatur file berdasarkan tanggal
Saya menulis skrip baru ini berdasarkan jawaban pertama masalah itu:
tulis skrip ini ke file yang bernama
copy.sh
di direktori lama Anda.ganti
/your/new/directory
dengan jalur direktori baru Andabuat file ini dapat dieksekusi dengan
chmod +x copy.sh
kemudian jalankan file ini dengan
./copy.sh
sumber
2015
direktori.Anda mungkin harus menggunakan alat batch untuk operasi batch. Melakukannya biasanya akan mengharuskan membaca / menulis semua catatan dalam satu aliran daripada, misalnya, meminta
cp
proses terpisah untuk setiap file yang disalin.Sudah ada
cpio
jawaban yang ditulis di sini, yang, mengingat hanya opsi yang sudah disediakan Anda kemungkinan besar akan saya pilih. Namun,cpio
format telah diperbaiki dan dilipat ke dalampax
format arsip standar sejak masa kejayaannya. Hal yang sama berlaku untuktar
.POSIX- yang ketat
pax
tidak akan memberikan opsi apa pun untuk secara langsung memfilter anggota arsip berdasarkan waktu modifikasi file - meskipun standar tidak menentukan%T
pengubah format daftar-mode. Namun,pax
implementasi yang paling umum tersedia yang saya tahu - yang merupakan versi BSD dikelola oleh mirabilos - tidak memperluas ini menjadi CLI-switch yang dapat diakses secara langsung.Misalnya, untuk menyalin hanya semua file di pohon yang di-root
./
yang terakhir dimodifikasi sebelumccyymmddHHMM
dapat/target/dir
Anda lakukan:Untuk menghindari pengulangan ke direktori anak, Anda dapat melakukannya:
Lihat
man
halaman untuk lebih lanjut.sumber
pax
, tapitar
dancpio
masih berdiri saya dengan baik. +1pax
format arsip aktual (yang merupakan perluasan ke format ustar ) ,pax
utilitas POSIX-spec'd membaca / menulis format cpio, pax, dan ustar. Karena ketiga jenis arsip terutama hanya untuk berbagai cara pengkodean metadata untuk banyak file bersama data aktual file tersebut ke dalam satu aliran, itu tidak terlalu berlebihan. Saya pernah menulisshitar
- yang hanya beberapa baris skrip shell untuk - kebanyakandd
-tar
dev blok dengan cepat berdasarkan pada spesifikasi POSIX.cpio -H ustar
...