使用交互式 rm (rm -i) 计算已删除文件的数量

使用交互式 rm (rm -i) 计算已删除文件的数量

我想计算交互式删除的文件和目录的数量:

for f in /tmp/mydir/* ; do
  rm -ir "$f"
done

如何以最简洁/优雅的方式做到这一点?


例子:

abc@def:/tmp/mydir$ tree
.
├── 1
├── 2
├── 3
├── 4
├── A
│   ├── 1
│   ├── 2
│   └── 3
├── B
│   ├── 1
│   └── 2
└── C

3 directories, 9 files

如果所有答案都是y(是的),那么我期待答案:

  • 7(计数:1234ABC)或:
  • 10(数数:1234A/1A/2A/3B/1B/2C)。

两个版本都受欢迎。

我知道我可以在运行交互式操作之前和之后计算文件/目录的数量rm,但事实并非如此,因为实际上我是在文本文件中存储的文件之间进行迭代。

答案1

只需使用:

rm -vri files | wc -l

也将包括 dirs (即删除A)。这将起作用,因为-v只会将成功removed ’file’(或目录)输出发送到stdout,而所有其他输出都发送到stderr

在您的示例中,输出将为12,因为有 3 个目录和 9 个文件。

相关内容