Показать только имя файла без всего пути к каталогу

ls /home/user/new/*.txt печать все txt файлы в том каталоге. Однако это печатает вывод следующим образом:

[me@comp]$ ls /home/user/new/*.txt
/home/user/new/file1.txt    /home/user/new/file2.txt    /home/user/new/file3.txt

и так далее.

Я хочу работать ls команда не от /home/user/new/ каталог таким образом, который я должен дать полному имени каталога, все же я хочу, чтобы вывод был только как

[me@comp]$ ls /home/user/new/*.txt
file1.txt    file2.txt    file3.txt 

Я не хочу весь путь. Только имя файла необходимо. Это выходит, должен быть решен с помощью ls команду, поскольку ее вывод предназначен для другой программы.

59
задан 2 July 2015 в 18:00

2 ответа

Выбранный ответ не работал на меня, поскольку у меня были пробелы, кавычки и другие странные символы в моих именах файлов. Для заключения в кавычки входа для basename необходимо использовать:

ls /path/to/my/directory | xargs -n1 -I{} basename "{}"

Это, как гарантируют, будет работать, независимо от того, чем называют файлы.

1
ответ дан 1 November 2019 в 11:19

Существует много способа, которым мы можем сделать это, и просто можно попробовать следующее.

ls /home/user/new | tr '\n' '\n' | grep .txt

Другой метод:

cd /home/user/new && ls *.txt
0
ответ дан 1 November 2019 в 11:19

Другие вопросы по тегам:

Похожие вопросы: