将目录更改为类似编号的文件夹(shell脚本)

时间:2017-04-20 20:58:15

标签: shell

我需要一个关于如何更改到具有与其他命名约定类似的最新目录的解决方案。例如:

文件夹名称如下...
parent_directory ---> folder100.000.200
---------------------------- folder100.000.201
---------------------------- folder100.000.202
---------------------------- folder100.000.203

使用linux shell,我尝试导航到parent_directory然后导航到最新文件夹(folder100.000.203),而不必每天都更改脚本(定期添加文件夹)。

旧的解决方案是:

./script.sh 203

但这不再适用。我知道1美元是一个位置参数,但不明白为什么它以前工作而不是现在。对此的任何帮助将不胜感激。

编辑: 所以我发现旧脚本将一个值传递给脚本,这是$ 1的来源。当我运行脚本时,我忘记了我必须传递版本号,但有没有办法解决这个问题呢?

@Inject
BoneCPDataSource chdatasourceref;

这是目前的工作解决方案,但我仍然希望自动查找号码并将其传入。

2 个答案:

答案 0 :(得分:0)

如果您想要的文件夹是最近创建的(无论其名称如何),那么您可以使用ls -c按ctime降序排序。所以,也许是这样的:

cd $(ls -c | head -1)

答案 1 :(得分:0)

我想我找到了一个解决方案,但我希望更多的眼睛来验证它。

cd $(ls -dr */ | grep 'folder100.000' | head -1

此解决方案返回具有' folder100.000'的目录(-d * /)。 (grep' folder100.000')在其名称中,并按相反的顺序(-r)对其进行排序,返回最高的内部版本号(头-1)。所以这段代码返回:

folder100.000.203

由于唯一改变的是最后3个数字,这是一个合适的解决方案还是我应该找到另一种方法来查找最新的版本文件夹?

附注:这些命令将在ftp中运行