Як отримати файли, знайдені командним рядком 'find', упорядкованим за датою модифікації в OS X?


13

Як використовувати термінал Mac OS X, як мені написати findкоманду, яка упорядковує результати за датою модифікації (перша остання)?

Є вже подібні запитання, але вони стосуються GNU findта POSIX, але я не знаю, чи Mac OS X GNU чи POSIX, чи щось інше.

Відповіді:


16

OS X повністю сумісний з POSIX .

Щось подібне повинно робити:

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

Деякі примітки:

  • -tВаріант в lsсортують по mtime.
  • xargsвикористовується для передачі імен файлів як аргумент ls. Зверніть увагу, що ви повинні використовувати -print0в findі -0в, xargsякщо у вас є файли з пробілами в їх іменах. Також максимальна кількість аргументів обмежена ARG_MAXзмінною . Щоб дізнатись, скільки їх, введіть getconf ARG_MAX.
  • Ви можете надати, -rщоб змінити порядок сортування (→ спочатку найстаріші файли)
  • Інші findта lsваріанти - як зазвичай - викладені в посібниках ( man findабо man ls).

ls -ltrдля скасування замовлення.
Даніель Бек

Звичайно, Xe їх лише сортуватиме в межах груп (трохи менше) ARG_MAXсимволів імен файлів.
JdeBP

Так, дякую за додаток @JdeBP та Daniel. getconf ARG_MAXпокаже це число.
slhck

ах моя проблема в тому, що я використовую цю команду в яблучному скрипті і використовую результат для читання вмісту цього файлу. Але тепер результат містить інформацію про дату, а не лише ім'я файлу: виконайте оболонку скрипта "find / Users / akw / Library / Preferences / ByHost / -name 'com.apple.windowserver *' -print0 | xargs -0 ls -tl | head -1 "повертає це ->" -rw ------- @ 1 akw штат 5512 19 червня 07:52 /Users/akw/Library/Preferences/ByHost//com.apple.windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
запад

Тоді використовуйте @zadam ls -tзамість ls -tl. -lДає довгий список , включаючи дати. Я не знав, що саме ви намагаєтеся зробити, тому шкодую за це - я припускав, що ви хочете побачити mtimeі те.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.