Saya sedang mengerjakan skrip yang akan menyalin HANYA file yang telah dibuat dalam hari terakhir ke folder lain. Masalah yang saya alami adalah skrip yang saya miliki menyalin semua file dalam direktori sumber, bukan hanya file yang berumur kurang dari satu hari.
Inilah yang saya miliki:
find . -mtime -1 -exec cp --preserve --parents -a "{}" /somefolder \;
Kode di atas menyalin semua file di direktori sumber. Jika saya menghapus semua argumen untuk 'cp' maka itu berfungsi:
find . -mtime -1 -exec cp "{}" /somefolder \;
Kode di atas hanya menyalin file-file terbaru seperti yang saya inginkan tetapi saya perlu mempertahankan atribut menggunakan argumen cp.
Saya juga telah mencoba variabel dan untuk loop berpikir mungkin opsi -exec adalah masalahnya:
files="$(find -mtime -1)"
for file in "$files"
do
cp --parents --preserve -a file /somefolder
Namun, hasil loop di atas dalam masalah yang sama, semua file disalin. Jika saya echo $ file hanya file yang saya perlukan yang ditampilkan.
Bagaimana saya bisa membuatnya bekerja?
find /sourcefolder -type f -mtime -1 -exec cp -a "{}" /somefolder \;