linux - Shell 脚本 - help-me 列出文件和子目录

标签 linux file list shell

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

#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/

相关文章:

linux - 处理 kmalloc 返回的优化

.net - Windows 文件系统中是否有为每个文件预先计算的哈希值?

ios - 为什么 copyItemAtPath :toPath:userPath failed to copy the file when the file really exists? NSFileNoSuchFileError,Cocoa 错误代码 4

Python:添加到for循环中和外部的列表列表

c - 套接字编程-简单的客户端/服务器

c - 如何为我的 Linux 找到可用的 POSIX 系统调用 api 列表?

linux - 使用排序从列表中删除行,grep LINUX

c - 如何在C中读取和减去文件中不同行中的2个值

python - 获取列表中所有可能的有序子列表

list - F# 中的高速列表折叠和累积