Подтвердить что ты не робот

Linux найти команду, найти 10 последних файлов рекурсивно, независимо от времени

Что я пробовал до сих пор...

Команда:

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

Результат:

./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

Этот вывод в порядке, не работает, если я использую более широкий временной интервал. (обратите внимание, что я использую -ctime, а не -mtime, потому что некоторые загруженные файлы модифицированы несколько лет назад)

Проблема в том, что файлы можно загружать один раз в месяц или раз в год, и мне все равно нужно получить 10 последних файлов, независимо от времени.

Если это невозможно, tail ограничивает вывод или каким-то образом просто выбирает число, указанное без огромного влияния производительности на большое количество файлов.

Используя команду из одного ответа на SO, я смог получить файлы, но некоторые файлы отсутствовали...

find . -type f -printf '%[email protected] %p\n' | sort -n | tail -10 | cut -f2- -d" "

Результат:

./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

Файл garmin_kgen_15.exe отсутствует, поскольку он был создан в 2008 году, но он был загружен за последние 24 часа.

4b9b3361

Ответ 1

Мне сказали, что это решение:

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

Ключевым моментом является фиксатор printf %[email protected], который является -ctime. Я нашел его, прочитав 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

Ответ 2

проще:

filename=$(ls -t . | head -10)