Linux Shell命令:查找。如何在不使用管道的情况下进行排序和执行?

崩溃替代

find带有参数的Linuxexec命令在文件/文件夹上执行命令时会执行出色的工作,无论它们是否包含空格和特殊字符。例如:

find . -type f -exec md5sum {} \;

可以很好地md5sum在目录树中的每个文件上运行,但是以随机顺序执行Find不会对结果进行排序,而是需要使用管道才能sort以更易于理解的顺序获取结果。但是,使用管道sort消除了的好处exec

这不起作用:

find . -type f | sort | md5sum

因为某些文件名包含空格和特殊字符。

也行不通:

find . -type f | sort | sed 's/ /\\ /g' | md5sum

仍然不能识别空格是文件名的一部分。

我想我以后总是可以对最终结果进行排序,但是想知道是否有人知道一种简单的方法来避免在其中进行排序find吗?

查尔斯·达菲

使用BSD find

一个-s参数可用于请求字典顺序。

find . -s -type f -exec md5sum -- '{}' +

使用GNU find

使用NUL分隔符可以明确处理文件名。假设您拥有GNU工具:

find . -type f -print0 | sort -z | xargs -0 md5sum

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Linux如何在不使用QProcess的情况下执行shell命令?

如何在不使用gdb的情况下查找谁破坏了c(linux)中的堆栈?

在Linux系统中,如何在不使用ps命令的情况下获取所有进程ID

在不阻塞当前执行的情况下从 ac 程序启动和停止 linux shell 命令

我如何在Linux上不使用rpm命令的情况下卸载mysql-5.1.73-linux-x86_64-glibc23.tar.gz?

如何在不使用GNU / Linux的Adobe Acrobat的情况下删除PDF / A标记

如何在不使用groff的情况下将Linux手册页转换为HTML?

C / Linux:如何在不使用“ getlogin”的情况下获取用户登录名

如何在Linux中不使用ping的情况下检查wifi连接?

我如何在不使用kill的情况下杀死Linux中的进程?

如何在没有lhal和dmidecode命令的情况下获取Linux序列号?

C / C ++ Linux,如何在不使用IP的情况下在网络上查找邻居(仅MAC)

如何在没有任何用户和权限的情况下使用Linux

如何在不使用 std 的情况下构建具有稳定 Rust 的标准 Linux .so 库?

在不打开终端的情况下执行终端命令-Linux

如何在不使Linux内核崩溃的情况下访问mmaped / dev / mem?

在不使用fopen()和fread()的情况下读取linux utmp文件

如何在不使用命令Sed的情况下查找和替换字符串?

如何在不更改对齐的情况下使用linux命令将终端的输出写入新文件?

为什么使用管道进行排序(Linux命令)很慢?

如何在不打开Linux的情况下查找所有串行设备(ttyS,ttyUSB等)?

在Linux中不使用网络命令行的情况下,如何知道打开端口的列表以及拥有它们的进程?

如何在不升级Linux内核的情况下进行远程升级?

如何在不使用adduser / useradd的情况下在Linux中管理用户

如何在不使用 brew 的情况下在 linux 中安装 KUDO Kubectl Plugin?

如何在不使用cpconfig util的情况下在Linux系统上显示已安装的CSP?

如何在不使用pip的情况下在Linux终端中查看pysnmp版本

如何在不使用USB或CD的情况下在计算机上安装Linux?

如何在不使用aptitude或apt-get的情况下在Linux中安装lxml