bash扩展到目录中的最后一个文件夹

时间:2014-05-27 19:29:27

标签: bash shell expand

有没有办法为路径指定“目录中的最后一个文件夹”?

例如,我有一个目录a/,其中包含文件夹1/2/3/4/5/

如何指定cat a/${last_folder}/<my file>?在这种情况下,它应扩展为a/5/<my file>

1 个答案:

答案 0 :(得分:5)

Subshell expansion是你的朋友。

cat "$(find a/ -type d -maxdepth 1 -mindepth 1 |sort |tail -1)"/<my file>

或者如果你想对它蒙羞:

: a/*/
cat "$_"/<my file>

:是一个什么都不做的命令。这里使用它将$_设置为命令行中的最后一个单词扩展。由于a/*/扩展为a/1 a/2 a/3 a/4 a/5,因此会将$_设置为a/5