GNU/Linux >> Linux の 問題 >  >> Linux

Linuxのfindコマンド、期間に関係なく再帰的に10個の最新ファイルを見つける

これが解決策だと言われました:

find . -type f -printf "%[email protected] %p\n" | sort -rn | head -n 10

要点は printf %[email protected] です -ctime のプレースホルダー 1。 man find を読んで見つけました .

結果:

1336992789.0000000000 ./Mobilni Telefoni/05. iPhone/03. iPhone 4G Firmware/5.1.1/iPhone3,1_5.1.1_9B206_Restore.ipsw.filepart
1336928538.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt
1336922295.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe
1336868365.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.zip.filepart
1336867426.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar
1336866301.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.zip
1336865921.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar
1336865409.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_CDS.zip
1336865398.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_BIN.zip
1336864949.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_OXFKC1_CSC.zip

ファイルの非常に大きなリストの場合、sort(1) パイプを使用すると、リソースの使用に最適ではない可能性があります。

sort(1) perl(1) に置き換えることができます 上位 10 個のエントリのみをバッファリングします。これについては、unix コマンド:上位 n レコードを取得する方法 で概説されています。 3 つの場合、ここでは 10 レコードの採用です。

sort(1) を置き換えます そして head(1) フィルタ:

find . -type f -printf "%[email protected] %p\n" | perl -ane '
    BEGIN {@top = ([-1]) x 10}
    if ($F[0] > $top[0][0]) {
        @top = sort {$a->[0] <=> $b->[0]} @top[1..9], [$F[0], $_];
    }
    END {print for reverse map {$_->[1]} @top}
'

結果は同じです。


Linux
  1. Linuxでfdコマンドを使用してファイルを検索する方法

  2. Linuxコマンド:テキストファイルのみを「検索」する方法は?

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linuxでファイルをすばやく検索するための5つのコマンドラインツール

  3. 25Linuxでの便利なfindコマンドの実用例

  1. Linuxでのコマンドまたはプロセスの実行時間を検索する

  2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  3. Linux の find コマンドを使用してファイルを検索する方法