Автор Гілка: Як відсортувати знайдені файли?  (Прочитано 3438 раз)

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Привіт. Є така задачка:
Скрипт приймає два параметри: назву користувача і кількість днів. Потрібно вивести всі файли з домашнього каталогу того користувача, якого задали параметром і які були модификовані більше тої кількості днів, які теж передали параметром. Все треба вивести у відсортованому порядку.

Пошук файлів я зробив:
find /home/$1 type -f -mtime +$2 -print
А от як тепер це відсортувати, не  знаю. Це треба зберегти в змінну і потім її передати команді sort? Чи це має бути масив? Просто це мій перший скрипт. Наперед, дякую.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Як відсортувати знайдені файли?
« Відповідей #1 : 2009-11-29 13:38:07 »
$ find ... | sort
Це переспрямування виводу find на ввід sort.

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #2 : 2009-11-29 16:56:29 »
Цитата
$ find ... | sort
Це переспрямування виводу find на ввід sort.

За це дякую.. не знав. А можна якось задати команді find, щоб вона вертала тільки ім'я знайденого файла, а не його адресу? Тому що мій вищенаписаний скрипт вертає шляхи файлів, а не їх імена. Я шукаю, ніяк знайти не можу... Чи просто треба робити вручну? Відділяти імена від адреси?

$find /home/$1 type -f -mtime +$2 -print | sort
Пише: cannot execute [Is a directory]

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Як відсортувати знайдені файли?
« Відповідей #3 : 2009-11-29 18:27:35 »
Пардон. $ - то так позначається запрошення шеллу для звичайного користувача. # - для рута.

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #4 : 2009-11-29 18:34:55 »
Пардон. $ - то так позначається запрошення шеллу для звичайного користувача. # - для рута.

Щось я не дуже зрозумів про що йдеться. Я заходжу під звичайним користувачем, а не під рутом.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Як відсортувати знайдені файли?
« Відповідей #5 : 2009-11-29 18:37:20 »
Та зрозуміло, просто я (і не тільки я) зазвичай так позначаю запрошення командного рядка оболонки. Отож набирати його не треба.

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #6 : 2009-11-29 19:57:37 »
Дякую, працює. Тільки виводить шляхи файлів, а мені треба назви. І не можу знайти як це робиться. Чи є якийсь ключ, який я пропустив, в команді find. Чи є якась додаткова команда? Чи вручну з шляху діставати назву файлу?

Відсутній Re.

  • Загальний модератор
  • Літератор
  • *****
  • дописів: 1898
  • Карма: +1/-0
Re: Як відсортувати знайдені файли?
« Відповідей #7 : 2009-11-29 20:00:16 »
-L

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #8 : 2009-11-29 21:21:00 »
З -L не працює. Як виводило весь шлях до файла так і виводить  :'(

find -L /home/$1 type -f -mtime +$2 -print | sort
Чи я щось не так пишу?

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Як відсортувати знайдені файли?
« Відповідей #9 : 2009-11-29 21:27:06 »
Замість -print - -printf '%f\n'
« Змінено: 2009-11-29 21:27:55 від ISBear »

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #10 : 2009-11-29 21:28:46 »
та я цілий день в тому man find сиджу і в неті риюся... дякую, спробую

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Re: Як відсортувати знайдені файли?
« Відповідей #11 : 2009-11-29 21:31:01 »
Працює. Дякую  :)