如何使用 linux 命令从我的目录中删除 ~ 表示的文件?

如何使用 linux 命令从我的目录中删除 ~ 表示的文件?

为什么创建的文件带有 ~ 符号?

通过删除 ~ 符号文件是否会影响原始文件?

我的文件:(通过linux命令ls获取)

DG_Item122   DG_Item147   DG_Item175   DG_Item200   DG_Item226   DG_Item249~  DG_Item271~  DG_Item293~  DG_Item314~  DG_Item49    DG_Item80
DG_Item122~  DG_Item148   DG_Item175~  DG_Item200~  DG_Item226~  DG_Item25    DG_Item272   DG_Item294   DG_Item315   DG_Item5     DG_Item80~

我的预期输出:

要打印的文件不带波形符。

答案1

当使用某些文本编辑器编辑文件时,编辑器可能会保存一个备份带有后缀的文件~。其他编辑器可能使用其他后缀,但~它是迄今为止 Unix 上最常用的备份后缀。

如果您觉得不再需要备份,您可以删除这些文件:

$ rm *~

如果您希望保留备份文件,但不想在 的输出中看到它们ls,那么您可以使用

$ ls -B

或者

$ ls --ignore-backups

(这是同一件事)。这些标志将ls忽略与 shell 文件名通配模式特别匹配的文件*~(因为它是常见的备份后缀)。要隐藏任何其他文件的列表,请使用eg --hide='*.bak'(这将隐藏任何带有.bak后缀的文件)。-B和标志--ignore-backups可以被视为 的简写--hide='*~'

-B为了避免每次都键入,您可以将以下内容添加到~/.bashrc文件中:

function ls {
  command ls --ignore-backups "$@"
}

这将有效地用 shell 函数“替换”该命令,该函数调用添加了标志ls的 real 。ls--ignore-backups

您可以添加别名来代替 shell 函数:

alias ls='command ls -B "$@"'

...如果您认为这样看起来更整洁。

注意:-B/--ignore-backups选项以及--hide是GNU coreutils 包实现ls中可用的GNU 扩展ls,但这很可能已经安装在您的 Linux 计算机上。

至于别名与 shell 函数,bash手册中包含短语

对于几乎所有用途,别名都被 shell 函数取代。

答案2

这些文件通常是由某些文本编辑器创建的,这意味着它们是原始文件的备份。

如果您不想在以下情况下看到这些文件ls

ls | grep -v '~$'

或使用 GNU ls

ls --hide='*~'

如果你想删除它们:

rm ./*~

删除它们不会影响您的原始文件(末尾没有 ~ 的文件)

相关内容