パターンに一致する最近作成されたファイルをあるフォルダから別のフォルダに移動する

パターンに一致する最近作成されたファイルをあるフォルダから別のフォルダに移動する

以下を実行するbashスクリプトの例を探しています。

/tmpフォルダの下にファイルを書いています。

xtermプロンプトでこれを行うと、最近のファイルのls -ltrリストが表示されます。たとえば、次のようになります。

abc_mytest.log
abc_runTimeFailure.scripted.log
myManager.log

mv今日作成した最新の内容を/home/project/の下の新しいフォルダに移動したいと思います。

/tmp今日作成したアイテムを次に移動したいです。/home/project/

コミュニティで共有できるすべてのケースは、私が車輪を再発明する前に時間を節約します。

ありがとう、エリック

答え1

そしてzsh

autoload age
mv /tmp/*(.e[age today]) /home/project/

D今日最後に修正された隠しファイルも移動するには、glob修飾子を追加してください。)

これは/tmp、システムユーザーを含むシステム内のすべてのユーザーが使用する一時ディレクトリです。自分のものではない可能性のあるファイルを移動しようとすると、悪い考えのように聞こえます。そうしないと、システムはそれを許可しませんroot

自分が所有するファイルのみを考慮するには、Uglob修飾子を使用してください。次のファイルなど、名前が特定のパターンに一致するファイルのみを移動できます.log

mv /tmp/*.log(.Ue[age today]) /home/project/

答え2

man find mv以下を読んで実行してください。

find /tmp -maxdepth 1 -type f -daystart -mtime 0 \
  -exec mv -t /home/project/ {} +

未検証!echo mvテストには潜在的に危険なものではなく使用する必要がありますmv

関連情報