我想使用shell脚本列出给定路径中所有文件夹的绝对路径。
我试过的是:
ls -l /var/www/temp
但是我找不到ls
命令的选项,它将列出绝对路径。
我在StackOverflow上发现了一个相关的问题:how to list full paths of folders inside a directory in linux?
但我需要的是,在单个命令中,我需要列出给定路径(此路径随时间变化)中的所有文件夹及其绝对路径。
有人能帮我做这件事吗?提前谢谢。
发布于 2017-05-22 20:26:28
这会有所帮助,但它没有使用"ls"
您可以将pwd替换为find。
find /var/www/temp -type d
但需要注意的是,这将在屏幕上输出列表。
发布于 2017-05-22 23:28:05
shell函数怎么样?
dabspath () {
if [ -d "$1" ]
then
cd "$1"
find "$PWD" -type d
cd "$OLDPWD"
else
echo "$0: $1: No such directory"
fi
}
用法:dabspath foo
如果foo是相对于当前工作目录的目录,那么它将打印foo及其所有子目录的绝对路径。
发布于 2017-05-23 06:26:07
for D in `find . -maxdepth 1 -type d`; do echo $PWD${D#.}; done
它的工作原理:
for循环将遍历所有的子目录,对于存储在变量D中的每个子目录,它将打印工作目录($PWD)的路径,后跟的是子目录D,从子目录D中删除前缀".“。对于每个子目录,它将打印工作目录($PWD)的路径。这样,绝对路径就会按预期打印出来。
注意:由于每个目录都有指向自身的硬链接( ".“子目录),它还将打印工作目录的路径。
https://stackoverflow.com/questions/44111375
复制相似问题