我想在我的主目录中找到以'〜'开头的文件,按数字排序,打印前五个并使用Linux中的find命令和管道删除它们。我有一个bash脚本:
#!/bin/bash
find ~/ -name "~*" | sort -n | head -5 | tee | xargs rm
这适用于删除文件,但我希望tee
命令将已删除的文件打印到标准输出。所有这个命令都是删除文件,但在终端输出中。我应该添加/更改什么?
谢谢。
答案 0 :(得分:3)
您可以在rm上使用详细标记,它会告诉您删除的内容
find ~/ -name "~*" | sort -n | head -5 | xargs rm -v
使用man rm
查看文档
-v, - verbose
解释正在做什么
答案 1 :(得分:3)
您可以使用rm -v
打印每个删除文件名:
find ~ -name '~*' -print0 | sort -zn | head -z -n 5 | xargs -0 rm -v
另请注意,使用-print0
和sort. head, xargs
中的所有相应选项来处理带有空格和全局字符的文件名。