我尝试编写脚本来删除以'~'
结尾的所有文件 - 就像在临时Emacs文件中一样。
到目前为止我的脚本是这样的:
#!/bin/bash
for f in $(ls -R)
do
if [ ${f: -1} == '~' ]
then rm $f
fi
done
这可以正确地找到以根目录结尾的所有文件。它适用于当前目录中的任何文件。问题当然是rm
只接收文件的名称,而不是完整路径,因此它无法删除它们。
有没有办法在列出文件时获取文件的路径?如果我在脚本中运行pwd
,它仍然只从当前目录运行它。我已经看到了使用realpath
获取完整路径的建议,但这也仅适用于当前的工作目录。如何在运行ls -R
时将文件的路径保存在临时变量中?
答案 0 :(得分:0)
我认为使用find
代替递归ls
可能是您问题的答案。 find
将有效地返回文件的完整路径以及文件名,因此有了这个,您可以迭代它们,检查它们是否包含您之后的字符,然后删除它们。 / p>