Wajib jawab zsh:
latest_directory=(parent/*(/om[1]))
Karakter dalam tanda kurung adalah kualifikasi global : /untuk mencocokkan hanya direktori, ommengurutkan pertandingan dengan bertambahnya usia, dan [1]untuk mempertahankan hanya pertandingan pertama (yaitu yang terbaru). Tambahkan Njika Anda ingin mendapatkan array kosong (biasanya Anda mendapatkan array 1-elemen) jika tidak ada subdirektori dari parent.
Atau, dengan asumsi parenttidak mengandung karakter globbing shell:
latest_directory='parent/*(/om[1])'; latest_directory=$~latest_directory
Jika Anda tidak memiliki zsh tetapi Anda memiliki alat GNU baru-baru ini (yaitu, Linux atau Cygwin yang tidak tertanam), Anda dapat menggunakan find, tetapi ini rumit. Ini salah satu caranya:
latest_directory_inode=$(find parent -mindepth 1 -maxdepth 1 -type d -printf '%Ts %i\n' | sort -n | sed -n '1 s/.* //p')
latest_directory=$(find parent -maxdepth 1 -inum "$latest_directory_inode")
Ada solusi sederhana ls, yang berfungsi selama tidak ada nama direktori yang mengandung baris baru atau (pada beberapa sistem) karakter yang tidak dapat dicetak:
latest_directory=$(ls -td parent/*/ | head -n1)
latest_directory=${latest_directory%/}
ls -ltr ./parent | grep '^d' | tail -1| awk '{print $NF}'