web-dev-qa-db-fra.com

Linux find command, find 10 derniers fichiers récursivement indépendamment de la durée

Qu'est-ce que j'ai essayé jusqu'à présent ...

Commander:

find . -type f -ctime -3 | tail -n 5

Résultat:

./Mobilni Telefoni/01. Box Update/05. DC Unlocker Client/dc-unlocker_client-1.00.0857.exe
./Mobilni Telefoni/01. Box Update/39. Z3X Box/01. Update/01. Samsung Box/SamsungTool_12.4.exe
./Mobilni Telefoni/10. Nokia/1. SRPSKI  HRVATSKI  JEZICI/BB5/3xx_Series/Asha 300/06.97/rm781_06.97_ppm_d.rar
./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe
./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt

Cette sortie est OK, ne fonctionne pas bien si je mets plus de temps. (remarquez que j'utilise -ctime et non -mtime car certains fichiers téléchargés ont été modifiés il y a quelques années)

Le problème est que les fichiers peuvent être téléchargés une fois par mois, ou une fois par an, et j'ai toujours besoin d'obtenir 10 derniers fichiers, quelle que soit la durée.

Si cela ne peut pas être fait, tail limite-t-il uniquement la sortie, ou récupère simplement le nombre spécifié sans impact énorme sur les performances d'un grand nombre de fichiers.

En utilisant la commande d'une réponse sur SO, j'ai pu obtenir les fichiers mais certains fichiers manquaient ...

find . -type f -printf '%T@ %p\n' | sort -n | tail -10 | cut -f2- -d" "

Résultat:

./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.Zip
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar
./Mobilni Telefoni/05. iPhone/07. iFaith/iFaith-v1.4.1_windows-final.Zip
./Mobilni Telefoni/05. iPhone/09. iPhone Browser/SetupiPhoneBrowser.1.93.exe
./Mobilni Telefoni/05. iPhone/10. iPhone_PC_Suite/iPhone_PC_Suite_Eng_v0.2.1.rar
./Mobilni Telefoni/05. iPhone/10. iPhone_PC_Suite/iPhone_PC_Suite_Ok.rar
./test
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.Zip.filepart
./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt

Fichier garmin_kgen_15.exe est manquant car il a été créé en 2008, mais il a été téléchargé au cours des dernières 24 heures.

22
Dejan Marjanovic

On m'a dit que c'était la solution:

find . -type f -printf "%C@ %p\n" | sort -rn | head -n 10

Le point clé est le printf %C@ espace réservé, qui est le -ctime un. Je l'ai trouvé en lisant man find.

Résultat:

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
39
hakre