有问题的两个目录的布局是:
folder1
-file1
-file2
folder2
-file1
-file2
目录中的文件名称相同。我尝试使用rm
以编程方式删除文件夹2中的文件:
for f in /Users/michelegiarratana/1/*; do rm /Users/michelegiarratana/2/$f
但这不起作用。 $f
是完整路径吗?我如何得到这个名字?
由于
答案 0 :(得分:0)
正如savanto在评论中所说 - 是的,你是对的,$f
这里是完整的文件路径。要解决此问题,您应该使用basename
builtin,它只提取文件名。在您的示例中:
for f in /Users/michelegiarratana/1/*; do rm /Users/michelegiarratana/2/$(basename $f); done
此外 - 您的问题更广泛地应用于bash shell而不仅仅是OS X终端,将来,您应该尝试在bash
标记中查找答案,因为其中许多对您有用。