Shell
獲取最新目錄(不是最新文件)
我的文件夾
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}"