【问题标题】:Script: Find duplicate filenames in two different directories脚本:在两个不同的目录中查找重复的文件名
【发布时间】:2018-07-13 08:27:55
【问题描述】:

我正在寻找以“.jar”结尾并使用 Mac OSX 的文件。此脚本必须执行严格的搜索,以递归方式比较 dir1 和 dir2,因为路径可以更改。

dir1 = "/apollo/pkg"
dir2 = "/apollo/env"

我们说

jar1 = "/apollo/pkg/2/3/4/same1.jar"
jar2 = "/apollo/env/8/1/3/5/2/3/same1.jar"

jar3 = "/apollo/pkg/7/2/6/same2.jar"
jar4 = "/apollo/env/1/3/same2.jar"

我是编写脚本的新手,需要编写一个会导致回显到 cmd 行的 bash 脚本

"/apollo/pkg/2/3/4/target.jar"
"/apollo/env/8/1/3/5/2/3/target.jar"

"/apollo/pkg/7/2/6/same2.jar"
"/apollo/env/1/3/same2.jar"

请帮忙。

【问题讨论】:

  • 你用的是什么操作系统?
  • @michaelbecerra Mac OSX
  • 要打印以 .jar 结尾的文件名,您只需运行 find 即可。 -name "*.jar" /Apollo 文件夹下的命令。
  • 您是否有权从命令行读取该文件夹?
  • @JohnFisherman - 听起来您并没有真正比较目录,而是在寻找存在于任一目录树中的重复文件名?

标签: bash macos directory


【解决方案1】:

尝试使用find,您可以在其中指定开始递归搜索的位置 ('/apollo') 以及所有带有-name '*.jar'jar 文件。

find '/apollo' -name '*.jar' -print

编辑: 您也可以尝试下面的命令,但应该是等效的。

find /apollo -name *.jar

【讨论】:

  • 这不打印任何东西,我已经更新了我的问题
  • 您能试试mkdir /apollo && sudo chmod u+rwx /apollo && touch /apollo/test.jpg 并重新运行我的命令吗?它应该可以在 Mac OSX 上运行。为了安全起见,我将在我的解决方案中添加一个变体。
【解决方案2】:

如果你使用的是 linux,你可以试试这样:

find /apollo -iname "*.jar"

如果你想到处搜索,试试这个:

find / -iname "*.jar"

【讨论】:

  • 这不打印任何东西,我已经更新了我的问题
  • 请检查您是否有权读取该文件夹。该命令也适用于 MacOSX。
猜你喜欢
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 1970-01-01
  • 2020-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多