Подтвердить что ты не робот

Получить последний файл в каталоге

Мне нужно получить последнее имя каталога в папке, которая начинается с nlb.

#!/bin/sh

cd /home/ashot/checkout
dirname=`ls -t nlb* | head -1`
echo $dirname

Когда папка содержит много папок с именем nlb, этот script работает отлично, но когда есть только одна папка с именем nlb, этот script печатает последнее имя файла внутри этой папки. Как изменить его, чтобы получить последнее имя каталога?

4b9b3361

Ответ 1

Добавьте аргумент -d в ls. Таким образом, он всегда будет печатать только то, что он сказал, а не заглядывать в каталоги.

Ответ 2

#!/bin/sh

cd /home/ashot/checkout
dirname=$(ls -dt nlb*/ | head -1)
echo $dirname

Как указывает другой ответ, вам нужно -d, чтобы не заглядывать внутрь каталогов.

Дополнительным советом здесь является добавление / к шаблону. В вопросе, который вы указали для получения последней каталога. С этим завершающим / будут сопоставляться только каталоги, иначе если файл существует последним и соответствует шаблону nlb*, который разбил бы ваш script.

Я также изменил `...` на $(...), который является современным рекомендуемым стилем письма.