我需要将ls -lR
输出转换为find
输出
E.g。我有一个文本文件,它是ls -lR
的输出。该文件包含:
/tmp/1:
total 0
drwxr-xr-x 3 user1 ubuntu 80 May 10 21:13 2
-rw-r--r-- 1 user1 ubuntu 0 May 10 21:13 f1
/tmp/1/2:
total 0
drwxr-xr-x 2 user1 ubuntu 60 May 10 21:13 3
-rw-r--r-- 1 user1 ubuntu 0 May 10 21:13 f2
/tmp/1/2/3:
total 0
-rw-r--r-- 1 user1 ubuntu 0 May 10 21:13 f3
我想将此文件转换为具有不同格式的第二个文件,就像默认情况下find
实用程序一样:
/tmp/1
/tmp/1/f1
/tmp/1/2
/tmp/1/2/f2
/tmp/1/2/3
/tmp/1/2/3/f3
如果我有用于生成ls-lR
的fs,我只会运行find /tmp/1
,但在我的情况下,我无法访问原始的fs。
有可能吗?此转换必须有一个简短的perl脚本。
答案 0 :(得分:1)
您可以使用-ls作为主要(与ls -l略有不同)或-exec ls -l {} +。然而,它将永远不会与ls -lR完全相同,因为它会进行不同的分组和打印总数。
实际上,我认为find . -type d -exec ls -l {} +
是最接近的近似值。