gpt4 book ai didi

linux - 漂亮的递归目录和文件打印

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:06 26 4
gpt4 key购买 nike

我正在构建一个 JAVA 应用程序,它将 bash 命令的输出保存到一个列表中。

@root ~/a $ zipinfo -1 data.zip 
a.txt
b.txt
test/
test/c.txt

root@ ~/a $ find .
.
./test
./test/c.txt
./b.txt
./data.zip
./a.txt

想法是将 zip 中的文件和目录与磁盘上的内容进行比较,并从磁盘中删除任何差异。在此示例中,test/c.txt 应该只被删除。

如您所见,格式不同。我需要哪个命令具有与 zipinfo -1 相同的样式?

我试过如下命令:

ls -R

ls -LR | grep ""

find . -exec ls -dl \{\} \; | awk '{print $9}'

最佳答案

删除 . 前缀的一种方法是使用 sed。例如:

find . ! -name . | sed -e 's|^\./||'

! -name . 从列表中删除 . 条目。 sed 部分从每行的开头删除 ./

它应该为您提供与您的 zipinfo 几乎相同的格式,尽管顺序可能不同。

注意:以上建议与 Linux 和其他 unix 版本(如 MacOS X)兼容。特别是在 Linux 上,您可以通过以下方式获得相同的结果:

find . ! -name . -printf "%P\n"

-printf 谓词特定于 Linux findutils,%P 格式打印每个找到的文件,从开头删除搜索目录。

关于linux - 漂亮的递归目录和文件打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com