我想知道如何以这种格式列出目录。 正常列表结构:
#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 脚本 - help-me 列出文件和子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589505/