我想知道如何以这种格式列出目录。
普通列表结构:

#find . -follow -type f | sed "s/.//"

/files/test1/test2/file1.txt
/files/test1/test2/file2.txt
/files/test1/test2/file3.txt
/files/test1/file1.txt
/files/test1/file2.txt
/files/test1/file3.txt
/files/file1.txt
/files/file2.txt
/files/file3.txt
/file1.txt
/file2.txt
/file3.txt

我想要
我将列出如下:
/files/test1/test2/file1.txt
file2.txt
file3.txt
/files/test1/file1.txt
file2.txt
file3.txt
/files/file1.txt
file2.txt
file3.txt
/file1.txt
file2.txt
file3.txt

像这样:
 ls -R1 | sed -e 's/://' -e 's/.//'

但想要上面说明的结构!

最佳答案

... | while read path; do
    dir=$(dirname "$path")
    if [[ $dir = $prev ]]; then
        echo $(basename "$path")
    else
        echo $path
        prev=$dir
    fi
done

关于linux - Shell脚本-帮助我列出文件和子目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10589505/

10-11 22:47
查看更多