小编Gab*_*kas的帖子

查找-exec ls -lR {} \; 每个项目返回两次

背景:我目前正在编写一个归档脚本,该脚本从某些文件夹及其内容创建压缩的 tarball。它应该能够将 gzip 压缩的存档与源同步,而无需解压缩存档或压缩源。为此,寻求的解决方案是将 的输出ls -l与 的输出同步tar -ztvf

这两个命令都返回类似的输出,但略有不同。大多数差异可以通过正则表达式或 来解决cut。我无法轻松解决的一件事是以最大深度列出相对于查询目录的文件路径。

为了克服这个问题,我曾经找到每个文件,并使用以下命令find将它们输入:ls

find Webcam -exec ls -lR --time-style="+%Y-%m-%d %H:%M" {} \; | cut -f1,3- -d" " | sed "s/ /\//2" | sed "s/ \+/ /g"
Run Code Online (Sandbox Code Playgroud)

其中大部分管道用于格式化目的,find Webcam -exec ls -lR {} \;是有问题的部分,并且Webcam是测试文件夹。该命令的输出如下:

-rw-r--r-- debian/debian 162406 2014-04-12 13:42 2014-04-12-134210.jpg
-rw-r--r-- debian/debian 116247 2014-08-09 16:38 2014-08-09-163849.jpg
-rw-r--r-- debian/debian 96597 2015-03-15 19:39 2015-03-15-193905.jpg
-rw-r--r-- debian/debian 100795 2015-04-29 20:23 2015-04-29-202242.jpg
-rw-r--r-- …
Run Code Online (Sandbox Code Playgroud)

ls bash tar find

0
推荐指数
1
解决办法
7169
查看次数

标签 统计

bash ×1

find ×1

ls ×1

tar ×1