0

我偶尔会在我的系统上执行“ls -laR /”并异地备份结果。如果发生灾难,我至少会知道我丢失了哪些文件。

我最近开始 sshfs 挂载远程系统,产生了两个问题:

  • sshfs 挂载系统上的“ls -laR”速度非常慢

  • 我不需要远程文件系统的“ls -laR”结果,至少在本地不需要。

find 的“-xdev”选项或 du 的“-x”选项的 ls 等效项是什么?

如果有更好的方法,我的目标是有效地获取硬盘驱动器上所有文件的列表,包括大小、所有者、修改时间等。换句话说,所有信息“ls -l”通常会提供.

我考虑过:“find / -xdev | xargs ls -la”,但我觉得效率会降低。

4

2 回答 2

1

使用-ls带有 的操作find(1),它会打印出文件统计信息,如下所示ls -dils

find / -xdev -ls

如果ls -dils格式不是你的东西,你也可以使用-exec ... +动作,它的工作方式类似于xargs(1)但更有效:

find / -xdev -exec ls -l '{}' +

+指示将find尽可能多的文件名传递到子进程中,因此它只会根据需要生成尽可能少的子进程(这取决于操作系统上命令行参数的最大大小)。如果您使用 a;而不是+,则find每个文件创建一个进程,当您有很多文件时会非常慢,因此不建议这样做。

于 2013-07-24T05:01:32.193 回答
0

本身没有这样的选择ls,但你可以做

find / -xdev -ls

或者,如果这不够详细,请查看该-printf选项提供的可能性。

于 2013-07-24T04:59:15.607 回答