告诉“ls -laR /”:不要递归到其他文件系统

时间:2013-07-24 04:53:18

标签: ls

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

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

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

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

ls相当于find的“-xdev”选项或du的“-x”选项?

如果有更好的方法,我的目标是有效地获得一个 我的硬盘上所有文件的列表,包括大小,所有者,模式时间等 换句话说,所有信息“ls -l”通常会提供。

我考虑过:“找/ -xdev | xargs ls -la”,但我觉得那样会 效率低下。

2 个答案:

答案 0 :(得分:2)

-ls操作与find(1)一起使用,打印出ls -dils所需的文件统计信息:

find / -xdev -ls

如果ls -dils格式不合适,您还可以使用-exec ... +操作,该操作与xargs(1)类似,但效率更高:

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

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

答案 1 :(得分:1)

ls本身没有这样的选项,但您可以

find / -xdev -ls

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