当目录中有相似文件名时 rm 一个文件?
rm a file when there are similar names of files in directory?
假设在一个目录中,您的名称非常长且彼此相似。
有没有办法使用rm
浏览目录到select你想删除的目录?
可能类似于您使用 vim 打开目录时浏览目录的方式...
要列出所有可能性(在 bash 中),请在命令提示符下键入 "rm space",它会询问您是否要显示所有文件。然后你就可以输入了。
即使你用 bash 标记了这个问题,你也可以试试 zsh。如果您键入 "rm space",您可以点击 tab 几次,然后您可以使用光标键导航到感兴趣的文件名。
如果您有支持 -d
选项的 xargs
版本,您可以按照这些思路进行操作:
ls > list_of_files
创建一个包含您的文件名的文件list_of_files
。然后编辑这个文件(用,例如vim
),删除你想保留的文件,留下你想删除的文件。那么:
< list_of_files xargs -d\n -n1 echo rm --
删除列表中的文件。
请注意,我使用了:-n1
选项并保留了 echo
:原样,此命令是无害的。它只会在您的终端上显示将执行哪些 rm
命令。如果这对您来说不错,请删除 -n1
和 echo
.
如果您的 xargs
不支持 -d
选项,请不要使用此方法,除非您彻底检查您的文件名不支持包含空格、引号、反斜杠和其他有趣的字符。
此外,首先要确保您的文件名不包含换行符(并检查 list_of_files
是否正常)。
假设在一个目录中,您的名称非常长且彼此相似。
有没有办法使用rm
浏览目录到select你想删除的目录?
可能类似于您使用 vim 打开目录时浏览目录的方式...
要列出所有可能性(在 bash 中),请在命令提示符下键入 "rm space",它会询问您是否要显示所有文件。然后你就可以输入了。
即使你用 bash 标记了这个问题,你也可以试试 zsh。如果您键入 "rm space",您可以点击 tab 几次,然后您可以使用光标键导航到感兴趣的文件名。
如果您有支持 -d
选项的 xargs
版本,您可以按照这些思路进行操作:
ls > list_of_files
创建一个包含您的文件名的文件list_of_files
。然后编辑这个文件(用,例如vim
),删除你想保留的文件,留下你想删除的文件。那么:
< list_of_files xargs -d\n -n1 echo rm --
删除列表中的文件。
请注意,我使用了:-n1
选项并保留了 echo
:原样,此命令是无害的。它只会在您的终端上显示将执行哪些 rm
命令。如果这对您来说不错,请删除 -n1
和 echo
.
如果您的 xargs
不支持 -d
选项,请不要使用此方法,除非您彻底检查您的文件名不支持包含空格、引号、反斜杠和其他有趣的字符。
此外,首先要确保您的文件名不包含换行符(并检查 list_of_files
是否正常)。