Моя папка parent
имеет следующий контент:
A.Folder B.Folder C.File
В нем есть как папки, так и файлы. B.Folder
новее. Теперь я просто хочу получить B.Folder
, как я могу этого достичь? Я попробовал это,
ls -ltr ./parent | grep '^d' | tail -1
но это дает мне drwxrwxr-x 2 user user 4096 Jun 13 10:53 B.Folder
, но мне просто нужно имя B.Folder
.
shell
files
ls
timestamps
Даниил
источник
источник
ls -ltr ./parent | grep '^d' | tail -1| awk '{print $NF}'
Ответы:
Попробуй это:
-t
опции делаютls
сортировку по времени модификации, сначала самые новые.Если вы хотите удалить
/
:источник
/
?ls -td -- ./parent | head -n 1
не дает мне правильные результаты, должен ли я использовать подоболочку, например,cd ./parent
каждый раз и выполнять эту команду? Любое решение?Отличие от решения Херсона - косая черта после
*
, которая заставляет оболочку игнорировать все файлы не-dir. Отличие от Gnouc , это будет работать, если вы находитесь в другой папке.Cut необходимо знать количество родительских каталогов (2), чтобы удалить завершающий символ '/'. Если у вас этого нет, используйте
источник
Обязательный зш ответ:
Символы в скобках являются квалификаторами глобуса :
/
сопоставлять только каталоги,om
сортировать совпадения по возрасту и[1]
сохранять только первое (то есть самое новое) совпадение. Добавьте,N
если вы хотите получить пустой массив (обычно вы получаете 1-элементный массив), если нет подкаталогаparent
.В качестве альтернативы, если предположить, что
parent
не содержит никаких символов-оболочек:Если у вас нет zsh, но у вас есть последние инструменты GNU (т.е. не встроенные Linux или Cygwin), вы можете использовать
find
, но это громоздко. Вот один из способов:Существует простое решение
ls
, которое работает до тех пор, пока имя каталога не содержит новых строк или (в некоторых системах) непечатаемых символов:источник
Ты можешь сделать:
источник
Следующая команда выполнит работу, даже если имя каталога содержит пробел:
Обновленное объяснение вещей в кавычках:
.
- текущий каталог (вы можете указать абсолютный путь здесь)-mindepth/-maxdepth
- ограничить команду поиска только непосредственными дочерними элементами текущего каталога-type d
- только каталоги-exec stat ..
- выводит измененное время и имя каталога из find, разделенные табуляцией (а не пробелом)sort -n -r |head -1 | cut -f2
- date упорядочивает каталог и выводит полное имя самого последнего изменения (даже если оно содержит пробел в качестве разделительной вкладки по умолчанию)источник