find-command: search with created time

前端 未结 3 1138
隐瞒了意图╮
隐瞒了意图╮ 2021-01-14 14:12

How can I find things created \"Jul 30 04:37\" and move them to /tmp? Something wrong:

find .  -ctime \"0037043007\" -exec mv {} /tmp +
相关标签:
3条回答
  • 2021-01-14 14:43

    I am not sure why you are using the "exec {} +" syntax... How about this:

    find . -ctime "0037043007" -exec mv \{} /tmp/ \;
    
    0 讨论(0)
  • 2021-01-14 14:47
    for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
    do
    mv $file /tmp
    done
    
    0 讨论(0)
  • 2021-01-14 14:57

    See the GNU find manual (and the time input formats information too).

    In particular, the -newerct '30-Jul-2009 04:37' option seems to do most of what you want.

    The only snag is that the man page implies that it works for files strictly newer than given time. That suggests you need to use the absolute time:

    1248957000 = 2009-07-30 05:30:00  (TZ = US/Pacific = UTC-07:00)
    
    -newerct @1248957000
    

    This still leaves the problem of how to deal with the strictly greater than semantics.

    -newerct @1248956999 -a ! -newerct @1248957001
    

    This works, but is indisputably messy (and assumes you have tools to obtain the Unix timestamp from a date/time value).

    You need a new enough version of find for this to work (GNU findutils 4.4.2 is current).

    0 讨论(0)
提交回复
热议问题