繁体   English   中英

在Linux中使用带有find命令的管道

[英]Using pipes with find command in linux

我想在主目录中找到以“〜”开头的文件,对它们进行数字排序,打印前五个文件,并使用Linux中的find命令和管道删除它们。 我有一个bash脚本:

#!/bin/bash
find ~/ -name "~*" | sort -n | head -5 | tee | xargs rm

这对于删除文件效果很好,但是我期望tee命令将删除的文件打印到标准输出。 该命令所做的只是删除文件,但在终端中有此输出。 我应该添加/更改什么? 谢谢。

您可以只使用rm上的详细标志,它会告诉您它正在删除什么

find ~/ -name "~*" | sort -n | head -5 |  xargs rm -v

使用man rm查看文档

-v,--verbose

解释正在做什么

您可以使用rm -v打印每个删除的文件名:

find ~ -name '~*' -print0 | sort -zn | head -z -n 5 | xargs -0 rm -v

还要注意使用-print0和所有相应的选项sort. head, xargs sort. head, xargs用空格和glob字符寻址文件名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM