如何通过终端删除文件时进行确认

dn1*_*aQN 5 command-line konsole

cd Desktop/
rm bored.py
Run Code Online (Sandbox Code Playgroud)

我希望它在删除之前进行确认。

(顺便说一句,我使用 konsole)

mat*_*igo 5

您可以通过创建别名来rm包含交互式删除的标志来完成此操作。

就是这样:

  1. 打开 Konsole(如果尚未打开)
  2. 编辑.bash_aliases文件:
    {editor of choice} .bash_aliases
    
    Run Code Online (Sandbox Code Playgroud) 注意:请务必将“{editor of choice}”替换为您选择的编辑器。
  3. 添加别名rm
    alias rm="rm -i"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 保存文件并退出
  5. 重新加载您的个人资料:
    source ~/.profile
    
    Run Code Online (Sandbox Code Playgroud)

现在,每当您尝试删除文件时,您都会看到如下内容:

$ rm bored.py 
rm: remove regular file 'bored.py'?
Run Code Online (Sandbox Code Playgroud)

Y将删除该文件。按其他任何按钮将充当“否”,取消操作。

注意:尽管有别名,您仍然可以使用其他标志,因此如果您计划删除大量文件,rm -f *.py仍然会按预期工作,而不会提示输入每个单独的文件。


Err*_*404 5

请参阅以下手册页rm

   -i     prompt before every removal

   -I     prompt  once  before  removing more than three files, or when removing recursively.
          Less intrusive than -i, while still giving protection against most mistakes
Run Code Online (Sandbox Code Playgroud)

因此,使用-iflag withrm会给您类似以下的提示:

$ rm -i bored.py
rm: remove regular file 'bored.py'? 
Run Code Online (Sandbox Code Playgroud)

您可以按Y确认删除。按N或任何其他键将拒绝删除。

.bashrc您可以在您的或中创建一个别名.bash_alias以使该标志永久存在:

echo "alias rm='rm -i'" >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

注意:这仅适用于未与递归 ( -r) 或强制 ( -f) 标志一起使用的文件。