bash - Filter before copy in shell -



bash - Filter before copy in shell -

i have directory files jan 2014 nov 2014. sadly files have no dates in name, way can know month file belongs using ls -lrt , checking month there.

so have re-create these files location based on month file created.

ls -lrt | grep oct

will give me oct files.

now, tried

ls -lrt | grep oct | cp * /../../oct2014

this didn't work. there anyway can perform such task?

edit: give thanks much replying such great answers finish explanation. humbled. seek these tomorrow morning.

further, files dealing not have special characters in names. again.

this 1 way

ls -ltr | awk '/oct/{print $nf}' | xargs -i{} cp {} newdir

or utilize find

find . -type f -newermt "oct 01" ! -newermt "oct 31" | xargs -i{} cp {} newdir

more robust find (credit broslow)

find . -type f -newermt "oct 01" ! -newermt "oct 31 23:59:59" -print0 | xargs -0 -i{} cp {} newdir

if need accurate thing in world ever

find . -type f -newermt "oct 01" ! -newermt "oct 31 23:59:59.9999999999999999999999999999999999999999999999999999999999999" -print0 | xargs -0 -i{} cp {} newdir note

just thought add together whilst parsing ls in situations unsafe (due not beingness great @ showing special characters, , programs terminate arguments spaces , newlines), if aware filenames in target folder regular names no special characters or spaces parsing ls work fine. . names of files @ discretion of user though, in cases names can alter improve utilize find solution.

bash shell filter copy cp

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -