Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:查找命令性能问题_Linux_Performance_Find - Fatal编程技术网

Linux:查找命令性能问题

Linux:查找命令性能问题,linux,performance,find,Linux,Performance,Find,我需要某个目录中的文件列表,因此我使用此命令查找linux计算机上的文件: find /some_directory -depth -maxdepth 1 -mindepth 1 -exec basename {} \; 但这需要很多时间(约35分钟),因为有超过20万个文件。这可以优化还是有更好的替代方案?性能低下是由于调用basename200000次的开销造成的。在不使用-exec选项的情况下运行find,并将输出通过管道传输到Python脚本或其他将路径名转换为基名的好语言,例如: b

我需要某个目录中的文件列表,因此我使用此命令查找linux计算机上的文件:

find /some_directory -depth -maxdepth 1 -mindepth 1 -exec basename {} \;

但这需要很多时间(约35分钟),因为有超过20万个文件。这可以优化还是有更好的替代方案?

性能低下是由于调用
basename
200000次的开销造成的。在不使用
-exec
选项的情况下运行
find
,并将输出通过管道传输到Python脚本或其他将路径名转换为基名的好语言,例如:

basename.py:

import os,sys
for line in sys.stdin:
    print(os.path.basename(line), end='')
外壳:

find /some_directory -maxdepth 1 -mindepth 1 | python basename.py

性能低下是由于调用
basename
200000次的开销造成的。在不使用
-exec
选项的情况下运行
find
,并将输出通过管道传输到Python脚本或其他将路径名转换为基名的好语言,例如:

basename.py:

import os,sys
for line in sys.stdin:
    print(os.path.basename(line), end='')
外壳:

find /some_directory -maxdepth 1 -mindepth 1 | python basename.py

您可以使用
-printf
模拟
basename
,这将消除对任何其他进程的需要:

find /some_directory -maxdepth 1 -mindepth 1 -printf '%f\n'

您可以使用
-printf
模拟
basename
,这将消除对任何其他进程的需要:

find /some_directory -maxdepth 1 -mindepth 1 -printf '%f\n'

你不能使用
ls
?我想知道你为什么不在Unix/Linux社区上发布它!
-depth
选项与
-mindepth 1
-maxdepth 1
组合使用毫无意义。无论如何,把它拿走。200000个文件并不多。查看您的文件系统性能。我同意这个问题在stackoverflow上是离题的。在Unix/Linux社区上问了同样的问题-你不能使用
ls
?我想知道你为什么不在Unix/Linux社区上发布这个问题!
-depth
选项与
-mindepth 1
-maxdepth 1
组合使用毫无意义。无论如何,把它拿走。200000个文件并不多。查看您的文件系统性能。我同意这个问题与stackoverflow无关;basename还剥离扩展;}@tink
basename
将选择性地剥离扩展,但OP没有指定该选项;basename还剥离扩展;}@tink
basename
将选择性地剥离扩展,但OP没有指定该选项。