如何将自定义路径添加到:“ 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)
问题:代码工作正常,它以相反的顺序列出了 "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)