Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Кирилл_ Гость
|
Добавлено: Пн Май 31 2004 15:30 Заголовок сообщения: Можно ли вывести только имена файлов? |
|
|
Помогите, пож-ста. Можно ли из директории вывести только имена файлов , но не выводить имена поддиректорий ?
Заранее спасибо ! |
|
Вернуться к началу |
|
|
pdp11
Зарегистрирован: 13.10.2003 Сообщения: 19
|
Добавлено: Пн Май 31 2004 22:35 Заголовок сообщения: |
|
|
Что-нибудь типа:
for fname in `ls -R *`
do
if [ -f $fname ]; then
echo $fname
fi
done |
|
Вернуться к началу |
|
|
Dmitry.Karpov
Зарегистрирован: 30.11.2003 Сообщения: 415 Откуда: Moscow
|
Добавлено: Чт Июн 03 2004 16:18 Заголовок сообщения: |
|
|
Я бы сделал конвейер через пайпы.
Сначала ls выводит список файлов вместе с атрибутами.
Затем grep выбирает нужне файлы по первому символу ("-" - обычный файл, "d" - директория, "c" или "b" - файл устройства, "l" - символьный линк).
После этого sed выкидывает всё, кроме имени файла.
PS: Список директорий получить проще: по маске "*/.". _________________ Благословен Бог, сотворивший меня сисадмином! |
|
Вернуться к началу |
|
|
ryabinkin
Зарегистрирован: 01.12.2003 Сообщения: 152 Откуда: Moscow
|
Добавлено: Чт Июн 03 2004 21:05 Заголовок сообщения: |
|
|
find . -type f -exec basename {} \; _________________ Из двух спорящих виноват тот, кто умнее. |
|
Вернуться к началу |
|
|
Dmitry.Karpov
Зарегистрирован: 30.11.2003 Сообщения: 415 Откуда: Moscow
|
Добавлено: Пт Июн 04 2004 13:31 Заголовок сообщения: |
|
|
ryabinkin писал(а): | find . -type f -exec basename {} \; |
А вот find станет залезать в поддиректории, если я правильно понимаю. _________________ Благословен Бог, сотворивший меня сисадмином! |
|
Вернуться к началу |
|
|
ryabinkin
Зарегистрирован: 01.12.2003 Сообщения: 152 Откуда: Moscow
|
Добавлено: Пт Июн 04 2004 17:40 Заголовок сообщения: |
|
|
Блиин, вот спросят так спросят... Я еще 3 раза прочитал вопрос, но так и не понял, какой вариант правильный
Что спрашивается?
1. хочется выводить имена только регулярных файлов, но не директроий в заданной директроии и всех ее поддиректориях?
2. только имена регулярных файлов данной директории?
На первый вопрос я ответ дал.
Вот ответ на второй
for i in * ; do if [ -f $i ]; then echo $i ; fi; done _________________ Из двух спорящих виноват тот, кто умнее. |
|
Вернуться к началу |
|
|
|