如何将自定义路径添加到:“ ls -d */ ”

How to add a custom path to : " ls -d */ "

问题:代码工作正常,它以相反的顺序列出了 "numerical names" 的文件夹,但是我必须在同一目录中。我想给它添加一个自定义路径,这样我就不必在同一个目录中了。

ls -d */ |  cut -d '/' -f 1 | sort -nr

我尝试在上面的代码中添加“/test/path”,但没有成功。

ls -d */ /test/path/ |  cut -d '/' -f 1 | sort -nr

更新:我不知道为什么在这种情况下会在底部打印 "test2"。我正在使用 SliTaz Linux 5.0 我不知道 shell 版本。

root@s1:/# mkdir /test
root@s1:/# mkdir /test/test2
root@s1:/# cd /test/test2/
root@s1:/test/test2# mkdir 1 2 3 10
root@s1:/test/test2# touch test.txt
root@s1:/test/test2# ls -d /test/test2/*/ | awk -F'/' '{print $(NF-1)}' | sort -nr
10
3
2
1
test2
root@s1:/test/test2#

更新 2: 我相信在使用 "Alpine Linux" 版本“3”的云服务器上,似乎没有问题,代码工作正常。

test:/# mkdir /test
test:/# mkdir /test/test2
test:/# cd /test/test2
test:/test/test2# mkdir 1 2 3 10
test:/test/test2# touch test.txt
test:/test/test2# ls -d /test/test2/*/ | awk -F'/' '{print $(NF-1)}' | sort -nr
10
3
2
1
test:/test/test2#
ls -d /test/path/*/ |  cut -d '/' -f 1 | sort -nr

尽管 cut 不会按照您打算使用的方式工作。

改用这个:

ls -d /test/path/*/ | awk -F'/' '{print $(NF-1)}' | sort -nr

同时为了避免 nullglob,请在之前设置:

shopt -s nullglob

因此,如果不存在目录,则不会导致错误。

我不确定上述命令在 SliTaz Linux 5.0 上不起作用的原因,但正如所讨论的,可以改为这样做:

cd /test/path/ ; ls -d */ | awk -F'/' '{print $(NF-1)}' | sort -nr ; cd "$OLDPWD"

(cd /test/path/ ; ls -d */ | awk -F'/' '{print $(NF-1)}' | sort -nr)