我可以从 ` vi ' 中删除一个文件吗?

我可以从 ` vi ' 中删除一个文件吗?

我想用vi或甚至打开几个文件less并删除那些我不关心的文件,而无需返回shell并转到下一个。

答案1

使用 vi,您可以明确地或通过通配符打开多个文件,例如:

vi 1.txt 2.txt
vi *.txt

一旦打开它们,您可以通过多种方式在它们之间导航。 :ls将显示打开的文件列表。要切换,您可以使用名称或索引,例如b1打开列表中的文件 1,或b 1.txt明确切换到该文件。

:n:p分别充当下一个和上一个。

:bd将关闭文件。

答案2

这个问题有很多种解释,但我猜你想要某种自动可视化工具来询问你是否要保留/删除文件。一种方法可能是这样的:

给定文件列表:

#!/bin/bash

for f in "$@"; do
    less "$f"
    # head -n 10
    rm -i "$f"
done

给定一个包含以下文件的目录:

#!/bin/bash
dir="$1"

for f in "$dir/*"; do
    less "$f"
    # head -n 10
    rm -i "$f"
done

在这两个脚本中,您必须less先按 退出进程,Q然后才能选择保留或删除文件。您可以使用该head -n 10命令来避免这种情况,并仅显示前 10 行。

从命令行运行这些并为其提供正确的参数。祝你好运。

相关内容