2016-07-11 13 views
0

Я учащийся bash. В настоящее время я пытаюсь напечатать ряд абсолютных путей к файлам для запуска дополнительных скриптов.Печать пути к файлу с использованием bash

В настоящее время echo $PWD, *In не работает. Моя файловая структура выглядит.

/home/hayden/myProject/gene 

В этом каталоге есть несколько папок, но меня интересуют только три.

/largeIn/ 
/mediumIn/ 
/smallIn/ 

В этих папках есть по-разному названы файлы, которые все оканчиваются .fa.

Есть ли простой способ извлечения файлов в файл txt?

взорам как этот

/home/hayden/myProject/gene/largeIn/file.fa 
/home/hayden/myProject/gene/mediumIn/file.fa 
/home/hayden/myProject/gene/smallIn/file.fa 

Спасибо

EDIT: @Afle решение было успешным.

+1

Возможно, 'ls $ PWD/* In/*. Fa'? – yellowantphil

+2

Если это не особенно полезно для использования bash, я бы предложил использовать инструмент Unix 'find':' find/home/hayden/myProject/gene/-name '* .fa''. – Alfe

+1

Ваш вопрос заключается в том, как ** найти ** пути или как ** извлечь ** их? –

ответ

1

Посмотрите на стандартную утилиту Linux find. Это будет ваш друг, когда вы будете работать с любой оболочкой, а не только с bash. Это общая утилита для поиска рекурсивностей файлов в каталогах.

В вашем конкретном случае, вы могли бы сделать что-то вроде:

находка/дома/Хайден/MyProject/генного -name '* .fa'

Найдет любые файлы в/дома/hayden/myProject/gen, чьи имена заканчиваются на «.fa» (даже если они находятся на нескольких уровнях ниже «гена».

Теперь, если вы знаете, что файлы именно там, где ваши примеры, вы можете просто использовать bash's glob'ing и ссылаются на них как:

/home/hayden/myProject/gene/*In/file.fa

 Смежные вопросы

  • Нет связанных вопросов^_^