2017-05-31 3 views
0

私は以下のfindコマンドを使って、複数のディレクトリで 'test.txt'を見つけてリストしています。unix同じ名前のファイルが重複しているときに最近更新されたファイルが1つ見つかりました

あなたが出力を見ることができるように、完全に大丈夫です様々なサブdirsの下に重複ファイルがあるので、私は複数の結果を得ています。

最近、最近更新されたファイルのみを取得する必要があります。

私は、最後の1時間または1日に修正されたファイルを取り出すために-mtimeを使用できることを知っています。

しかし、ファイルが変更されたときはわかりません。私はちょうどすべての重複のうち最も最近更新されたファイルが必要です。

助けてもらえますか?

コマンド:

find source_feeds-20170101* -name test.txt -exec ls -ltr {} \; 

出力:

-rw-r----- 1 user123 group1 87841 May 27 10:46 source_feeds-20170101_1/test.txt 

-rw-r----- 1 user123 group1 87841 May 20 7:25 source_feeds-20170101_2/test.txt 
+0

'stat path/2/yourFile'の出力を見てください。しかし、「変更:2017-05-31 07:22:01.975329001」の解像度でさえも「結びついている」と思われるかもしれません(おそらく私は推測します)。がんばろう。 – shellter

答えて

0
find source_feeds-20170101* -name test.txt -exec ls -ltr {} + | tail -1 

あなたが+の代わりに使用している場合は、問題を解決する見つけるの末尾に/を。 ;/が実行されているときに、ls -ltr path1 ; ls -ltr path2を1つずつ実行すると、一致する出力が1つではなく1つの出力しか生成されません。

0

以下は私のために働いた。

find source_feeds-20170101* -name test.txt -print0 | xargs -0 ls -ltr | tail -1 
+0

最初の見解で質問を誤解しています。あなたはこのソーターを作ることができて、xargs、-print0を削除して速くすることができて申し訳ありません。 '-exec ls -ltr {} + 'を使用しました。 – Edvin

関連する問題