Domanda

Come posso trovare le cose create " 30 lug 04: 37 " e spostarli in / tmp? Qualcosa non va:

find .  -ctime "0037043007" -exec mv {} /tmp +
È stato utile?

Soluzione

Consulta il manuale GNU find (e anche le formati di input di tempo ).

In particolare, l'opzione -newerct '30 -Jul-2009 04:37 ' sembra fare la maggior parte di ciò che vuoi.

L'unico inconveniente è che la pagina man implica che funziona per file strettamente più recenti del tempo dato. Ciò suggerisce che è necessario utilizzare il tempo assoluto:

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

-newerct @1248957000

Ciò lascia ancora il problema di come gestire la semantica strettamente maggiore della

-newerct @1248956999 -a ! -newerct @1248957001

Funziona, ma è indiscutibilmente disordinato (e presuppone che tu abbia gli strumenti per ottenere il timestamp Unix da un valore data / ora).

È necessaria una versione abbastanza nuova di find affinché funzioni (GNU findutils 4.4.2 è attuale).

Altri suggerimenti

for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
do
mv $file /tmp
done

Non sono sicuro del motivo per cui stai usando " exec {} + " sintassi ... Che ne dici di questo:

find . -ctime "0037043007" -exec mv \{} /tmp/ \;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top