Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2019, 23:19   #1
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию Find найти сразу файлы и папки

Не работают следующие виды объединений в find:
Код:
find . -type f d
find . -type f -type d
find . -type f -o -type d
find . \( -type f -o -type d \)
Как быть если надо сразу найти (две команды подряд не вариант) и файлы и папки, но не ссылки?
v4567 вне форума Ответить с цитированием
Старый 22.04.2019, 23:34   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Сделать ! отрицание на ссылки.
p51x вне форума Ответить с цитированием
Старый 22.04.2019, 23:40   #3
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

Мне надо найти все виды файлов кроме директорий и ссылок. Отрицание не поможет.
Нужно типа:
Код:
find . -type f -type b -type c -type p -type s
Извиняюсь за неправильно поставленный вопрос.
v4567 вне форума Ответить с цитированием
Старый 22.04.2019, 23:47   #4
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

И сразу в догонку можно ли при помощи find получить название не самой ссылки, а файла или папки на который она указывает, даже если их нет в наличии (битая ссылка)? Всё что удалось найти в мане, вот такой
вариант:

Код:
find -L "/dir" -type -l
но он не работает.
Вот такой код выдаёт перечень всех файлов:
Код:
find -L "/dir"
Надо сравнить в двух директориях не сами названия ссылок, а куда они указывают, даже если файла или папки на которые они указывают нету. Потом найти одинаковые и вывести уже названия самих ссылок, а не то куда они указывают.

Я уже решил эту задачу но через массивы. Всё работает но когда файлов и ссылок несколько сотен тысяч, то запись в массив, потом сравнение, потом вывод с массива затягивают работу скрипта минут на сорок.
Можно ли как то обойтись без массивов?Если обойтись без массивов, просто какими то бинарными командами, то всё я думаю сократиться до секунд, ну может быть минут.
v4567 вне форума Ответить с цитированием
Старый 23.04.2019, 00:28   #5
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

Извиняюсь я уже сдурел, мозги взрываются.
Действительно вот такая конструкция работает:
Код:
find . \( -type f -o -type b -o -type c -o -type p -o -type s \) -printf '%f\n'
Есть две директории со вложенными директориями внутри, расположенные в разных местах, например одна
прямо в корне /dir, а вторая в папке пользователя /home/user/dir

В них есть ссылки которые ссылаются внутри этих директорий (относительные пути) на файлы и папки, из этих файлов и папок некоторые могут быть, а некоторых может и не быть (битые ссылки). Надо найти ссылки которые ссылаются на одинаковые файлы (относительный путь и название файла) и одинаковые папки (относительный путь и название папки), даже если некоторые из этих ссылок будут битые. И вывести названия этих ссылок и битых то же, именно ссылок а не название файлов и папок на которые они ссылаются.
v4567 вне форума Ответить с цитированием
Старый 23.04.2019, 00:29   #6
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

В конце это я более вразумительно изложил задачу про ссылки.
v4567 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Папки и файлы SUPER123 Win Api 8 04.09.2013 15:18
Файлы и папки X@OC Общие вопросы Delphi 2 13.09.2011 21:18
редактировать все файлы сразу в linux NiCola999 Общие вопросы C/C++ 4 25.03.2010 22:22
Запуск программы сразу после открытия папки artemavd Общие вопросы Delphi 16 25.08.2009 08:41
Макрос. Найти текущую дату в колонке через Find Leanna Microsoft Office Excel 5 19.12.2008 17:06