Shell

獲取最新目錄(不是最新文件)

  • February 10, 2018

我的文件夾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

試試這個:

$ ls -td -- */ | head -n 1

-t選項ls按修改時間排序,最新的在前。

如果你想刪除/

$ ls -td -- */ | head -n 1 | cut -d'/' -f1
ls -td -- ./parent/*/ | head -n1 | cut -d'/' -f2

Herson 解決方案的不同之處在於 之後的斜杠*,這使得 shell 忽略所有非 dir 文件。與Gnouc不同,如果您在另一個文件夾中,它將起作用。

Cut 需要知道父目錄的數量 (2) 才能刪除尾隨的“/”。如果沒有,請使用

VAR=$(ls -dt -- parent/*/ | head -n1); echo "${VAR::-1}"

引用自:https://unix.stackexchange.com/questions/136976