Bash

使用互動式 rm (rm -i) 計算已刪除文件

  • October 24, 2019

我想計算互動式刪除的文件和目錄的數量:

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(計數:1, 2, 3, 4, A, B, C)或:
  • 10(計數:1, 2, 3, 4, A/1, A/2, A/3, B/1, B/2, C)。

兩個版本都受歡迎。

我知道我可以在執行 interactive 之前和之後計算文件/目錄rm,但事實並非如此,因為實際上我遍歷了儲存在文本文件中的文件。

只需使用:

rm -vri files | wc -l

也將包括目錄(即刪除A)。這將起作用,因為-v只會將成功removed ’file’(或目錄)輸出發送到stdout,而所有其他輸出都發送到stderr.

在您的範例中,輸出將為12,因為有 3 個目錄和 9 個文件。

引用自:https://unix.stackexchange.com/questions/222995