Автор Тема: Поиск или замена в Linux. find, locate, du  (Прочитано 16781 раз)

Оффлайн aus

  • Участник
  • *
  • Сообщений: 152
Re: Выборочное копирование по маске
« Ответ #15 : 18.03.2009 14:38:27 »
Спасибо, black. То что надо.
andrew_b, теперь я вижу, что не подходит.

Оффлайн andrew_b

  • Участник
  • *
  • Сообщений: 553
Re: Выборочное копирование по маске
« Ответ #16 : 18.03.2009 17:20:02 »
Скорее всего нет.
Хотя бы из того соображения, что есть ограничение на количество аргументов командной строки, а ls может выдать их очень много...
Это во-вторых. А во-первых, ls -l содержит не только имена файлов.

Alexei_VM

  • Гость
Re: Выборочное копирование по маске
« Ответ #17 : 18.03.2009 18:00:25 »
Это во-вторых. А во-первых, ls -l содержит не только имена файлов.

И вообще: в mc есть выделение по маске и копирование куда угодно нажатием одной кнопки.

Оффлайн _AP_

  • Участник
  • *
  • Сообщений: 102
locate [решено]
« Ответ #18 : 03.06.2009 19:33:23 »
Беглым поиском не нашел, как заставить работать команду locate, вот вывод примера:

$ locate /home
locate: /var/lib/locate/locatedb: Нет такого файла или каталога

что может не хватать для полноценной работы. Дистрибутив 5.0.

# rpm -qf /usr/bin/locate
slocate-0.2.16-alt1


# rpm -V slocate
missing    /var/lib/locate/locatedb


$ slocate /home
slocate: /var/lib/locate/locatedb: Нет такого файла или каталога

Может, кто сталкивался, подскажите направление, > т.е. что отвечает за создание этой базы данных.
« Последнее редактирование: 04.06.2009 20:04:42 от Skull »
Удачи.

Alexei_VM

  • Гость
Re: locate
« Ответ #19 : 03.06.2009 19:45:33 »
Может, кто сталкивался, подскажите направление, > т.е. что отвечает за создание этой базы данных.

[alexei@server ~]$ rpm -qf /usr/sbin/mklocatedb
slocate-0.2.16-alt1

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
find^2 (поиск в квадарате) [решено]
« Ответ #20 : 16.06.2009 16:20:28 »
Появилось желание сделать такой поиск по файловому архиву:
1. поиск папок, в которых небыло изменений в течение N дней;
2. в найденных папках поиск файлов, которые открывали в течение N дней.
Задача состоит в том, чтобы найти ненужные папки для "сдачи в архив".

Думал сделать так:
find /archive/ -type d -mtime +N -print0 | xargs -0 -n1 find -type f -atime -600но не работает:
find: пути должны быть указаны перед выражением
Использование: find [-H] [-L] [-P] [путь...] [выражение]
Мучился-мучился, но ничего не получается...

Может я велосипед изобретаюи или по другому пути пойти?
« Последнее редактирование: 17.06.2009 13:15:09 от Skull »

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 121
  • Здесь лежит М.С. Паниковский, человек без паспорта
Re: find^2 (поиск в квадарате)
« Ответ #21 : 16.06.2009 16:39:49 »
find /arhive/ -type d -mtime +1 -print | while read; do find "$REPLY" -type f -atime -600; done
только нафига ?
Я конечно далек от мысли...(с)

Оффлайн dk

  • alt linux team
  • ***
  • Сообщений: 989
Re: find^2 (поиск в квадарате)
« Ответ #22 : 16.06.2009 21:37:07 »
find /archive/ -type d -mtime +N -print0 | xargs -0 -n1 find -type f -atime -600
А если так:

for f in `find /archive/ -type d -mtime +N`
do
  find $f -type f -atime -600
done
« Последнее редактирование: 17.06.2009 13:13:49 от Skull »

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 121
  • Здесь лежит М.С. Паниковский, человек без паспорта
Re: find^2 (поиск в квадарате)
« Ответ #23 : 16.06.2009 22:04:09 »
dk - и получите банан при случае
Я конечно далек от мысли...(с)

Оффлайн dk

  • alt linux team
  • ***
  • Сообщений: 989
Re: find^2 (поиск в квадарате)
« Ответ #24 : 16.06.2009 23:14:10 »
dk - и получите банан при случае

Чего-чего?

Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 121
  • Здесь лежит М.С. Паниковский, человек без паспорта
Re: find^2 (поиск в квадарате)
« Ответ #25 : 17.06.2009 06:10:10 »
можете и не банан, а дырку от бублика или при особо ответственных операции окончание существования юниксвей на отдельно взятом компьютере, а может быть и на нескольких связанных одной цепью
Я конечно далек от мысли...(с)

Оффлайн Canabis

  • Участник
  • *
  • Сообщений: 55
Re: find^2 (поиск в квадарате)
« Ответ #26 : 17.06.2009 10:25:19 »
А если так:

for f in `find /archive/ -type d -mtime +N`
do
  find $f -type f -atime -600
done
Пробывал, не получилось, т.к. в найденных первым find'ом путях есть пробелы (/archive/info dir/), а второй find думает, что это разные пути (/archive/info и dir/).

А вот
find /arhive/ -type d -mtime +1 -print | while read; do find "$REPLY" -type f -atime -600; done
только нафига ?
сработало. За это спасибо, но по моему Вы пишете ахинею насчет банана и т.д.
А зачем это нужно писла в начале: Задача состоит в том, чтобы найти ненужные папки для "сдачи в архив". Т.е. надо найти папки, которыми уже никто давно не пользуется. Алгоритм такой: сначала находим папки в которых небыло изменений в течение N дней, записываем в файл, а потом ищем в этих папках файлы, которые использовались в течение N дней. Если файлы находятся, то эта папка остается, а остальные в архив...

Оффлайн dk

  • alt linux team
  • ***
  • Сообщений: 989
Re: find^2 (поиск в квадарате)
« Ответ #27 : 17.06.2009 10:37:20 »
Пробывал, не получилось, т.к. в найденных первым find'ом путях есть пробелы (/archive/info dir/), а второй find думает, что то разные пути (/archive/info и dir/).

Замените $f на "$f".


Оффлайн smaharbA

  • Участник
  • *
  • Сообщений: 121
  • Здесь лежит М.С. Паниковский, человек без паспорта
Re: find^2 (поиск в квадарате)
« Ответ #28 : 17.06.2009 10:46:51 »
Цитировать
Замените $f на "$f".

не поможет

поможет только если IFS=$'\n' , а потом обратно, но чревато тоже
Я конечно далек от мысли...(с)

Оффлайн dk

  • alt linux team
  • ***
  • Сообщений: 989
Re: find^2 (поиск в квадарате)
« Ответ #29 : 17.06.2009 11:25:47 »
не поможет

поможет только если IFS=$'\n' , а потом обратно, но чревато тоже

Да, согласен, что не прав.