1) я не уверен, что это не должно быть на superuser.com
2) ls все равно не печатает полный путь: ls -1 /your/dir
Редактировать Вопрос изменился. Согласно комментарию Павла ниже, я обновляю свой ответ. Вы можете сделать это так:
ls -1 /home/rich/*.txt | sed s/^.*\\/\//
Это минус 1, а не л, хотя я тоже работает. Объяснение: ls -l/-1 записывает имена файлов с вещами, которые вам не нужны. Каждая строка проходит через sed, который здесь выполняет подстановку, как указано в s/. Подстановка принимает форму:
s/text/replacement/
Мы заменяем все от начала строки ^
до последнего /
(/
- это специальный символ, поэтому мы должны экранировать его \\/
) ничем - то есть удалить его и, таким образом, оставить только имя файла.