Bash pwd for file在单独的目录中

时间:2018-04-22 06:38:34

标签: bash

我尝试编写脚本来删除以'~'结尾的所有文件 - 就像在临时Emacs文件中一样。 到目前为止我的脚本是这样的:

#!/bin/bash

for f in $(ls -R)
do
if [ ${f: -1} == '~' ]
then rm $f
fi
done

这可以正确地找到以根目录结尾的所有文件。它适用于当前目录中的任何文件。问题当然是rm只接收文件的名称,而不是完整路径,因此它无法删除它们。 有没有办法在列出文件时获取文件的路径?如果我在脚本中运行pwd,它仍然只从当前目录运行它。我已经看到了使用realpath获取完整路径的建议,但这也仅适用于当前的工作目录。如何在运行ls -R时将文件的路径保存在临时变量中?

1 个答案:

答案 0 :(得分:0)

我认为使用find代替递归ls可能是您问题的答案。 find将有效地返回文件的完整路径以及文件名,因此有了这个,您可以迭代它们,检查它们是否包含您之后的字符,然后删除它们。 / p>