Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Find dir/ -name '*' VS find dir/* -name '*'
цитата
14/05/14 в 21:12
 S_Flash
Такая хрень!
Код, приведённый ниже, находит всё классно, но пропускает файлы, которые начинаются с точки, например, .htaccess:
find dir/* -name '*'
Если убрать * после dir/, начинает ловить .htaccess, но включает в список путей саму диреткорию dir/, а это неприемлимо:
find dir/ -name '*'

Как выцепить все файлы, как и те, что начинаются с точки, но не включить в резалт саму диру dir/ ?
цитата
14/05/14 в 21:24
 Nux
может ты усложняешь?

cd dir && find -type f
цитата
14/05/14 в 21:54
 S_Flash


там немного сложнее правило поиска файлов, я просто упростил всё максимально!
Т.е. -name '*' на самом деле ! -name '*.php', выделить всё кроме php ...
цитата
14/05/14 в 22:46
 Nux
ну так
find dir/ -type f ! -name '*.php'
или к аналогии выше
cd dir && find -type f ! -name '*.php'

именно так будет правильно поскольку ты сказал НАЙТИ файлы, а в твоем примере и диры найдет какие не будут под маску попадать

Последний раз редактировалось: Nux (14/05/14 в 23:13), всего редактировалось 1 раз
цитата
14/05/14 в 23:00
 S_Flash
Nux: Оговорился.
Диры тоже нужно, но только вложенные.
цитата
14/05/14 в 23:08
 dm
S_Flash писал:
Как выцепить все файлы, как и те, что начинаются с точки, но не включить в резалт саму диру dir/ ?

ну не нужна - так просто отсеки ее в результатах поиска..

find..... | egrep -v 'dir/$'
цитата
14/05/14 в 23:19
 Nux
cd /path_to_dir && find ! -name '*.php'


если бы ты сразу написал чего надо, то уже бы ответ давно был icon_wink.gif
цитата
14/05/14 в 23:22
 Nux
если собираешься удалять то делать можно так
cd /path_to_dir && find ! -name '*.php' -delete


... только проверяй как то в безопасном месте icon_surprised.gif
цитата
20/05/14 в 12:54
 Дартаньян
find . -name '*'


Эта страница в полной версии