我偶尔在我的系统上执行“ls -laR /”和异地备份 结果。如果发生灾难,我至少会知道我丢失了哪些文件。
我最近开始使用sshfs挂载远程系统,产生两个问题:
sshfs挂载系统上的“ls -laR”非常缓慢
至少我不需要远程文件系统的“ls -laR”结果 不在本地。
ls相当于find的“-xdev”选项或du的“-x”选项?
如果有更好的方法,我的目标是有效地获得一个 我的硬盘上所有文件的列表,包括大小,所有者,模式时间等 换句话说,所有信息“ls -l”通常会提供。
我考虑过:“找/ -xdev | xargs ls -la”,但我觉得那样会 效率低下。
答案 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
选项提供的可能性。