Ubuntu Linux: menemukan file di antara waktu-waktu tertentu?

19

Saya menemukan SO yang disebut menggunakan Find / Grep untuk mencari file di antara waktu tertentu dalam sehari

Berdasarkan itu dan Unix SE disebut perintah Grep untuk menemukan file yang berisi string teks dan memindahkannya, saya berakhir dengan:

find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/

Tapi itu memindahkan SEMUA file. Apakah bedanya saya menggunakan Ubuntu?

Yang ingin saya lakukan adalah memindahkan semua file antara pukul 06.00 dan 18.00 ke direktori lain. Setiap saran akan dihargai.

digitaltoast
sumber

Jawaban:

32

Sebenarnya, findsudah memiliki fungsi ini:

find . -newermt "2013-01-01 00:00:00" ! -newermt "2013-01-02 00:00:00"

Dari halaman manual:

-newerXY reference
       Compares  the timestamp of the current file with reference.  The
       reference argument is normally the name of a file  (and  one  of
       its  timestamps is used for the comparison) but it may also be a
       string describing an absolute time.  X and  Y  are  placeholders
       for other letters, and these letters select which time belonging
       to how reference is used for the comparison.

       a   The access time of the file reference
       B   The birth time of the file reference
       c   The inode status change time of reference
       m   The modification time of the file reference
       t   reference is interpreted directly as a time

       Some combinations are invalid; for example, it is invalid for  X
       to  be t.  Some combinations are not implemented on all systems;
       for example B is not supported on all systems.  If an invalid or
       unsupported  combination  of  XY  is  specified,  a  fatal error
       results.  Time specifications are interpreted as for  the  argu‐
       ment  to the -d option of GNU date.  If you try to use the birth
       time of a reference file, and the birth time  cannot  be  deter‐
       mined,  a  fatal  error  message results.  If you specify a test
       which refers to the birth time of  files  being  examined,  this
       test will fail for any files where the birth time is unknown.
Tuan
sumber
Terima kasih @ msdl, saya tidak menyadarinya. Tampaknya hanya bertindak pada tanggal hari ini ketika memberikan "08:00:00" tanpa tanggal, jadi sepertinya perlu satu hari pada suatu waktu. Tapi itu akan membantu saya - terima kasih!
digitaltoast
Jadi bagaimana saya bisa mencetak file-file itu di terminal? saya mencoba perintah ini tetapi tidak mencetak apa pun untuk saya!
Kulasangar