1

下面,我正在尝试查找可能位于多个目录中的文件的最新版本。

示例目录:

~inventory/emails/2012/06/InventoryFeed-Activev2.csv    2012/06/05
~inventory/emails/2012/06/InventoryFeed-Activev1.csv    2012/06/03
~inventory/emails/2012/06/InventoryFeed-Activev.csv     2012/06/01

这是 bash 脚本:

#!/bin/bash

FILE = $(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)
#echo $FILE #For Testing

cp $FILE ~/inventory/Feed-active.csv;

我得到的错误是:

./inventory.sh: line 5: FILE: command not found

该脚本应按照上面的尝试复制最新文件。

两个问题:

首先,这是实现我想要的最佳方法吗?其次,上面有什么问题?

4

2 回答 2

6

=它看起来不错,但标志周围有空格。这行不通。尝试:

#!/bin/bash

FILE=$(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)
#echo $FILE #For Testing

cp $FILE ~/inventory/Feed-active.csv;
于 2012-06-24T00:59:25.913 回答
1

... 上面有什么问题?

变量赋值。您不应该在=标志周围放置额外的空格。以下应该有效:

FILE=$(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)

...这是实现我想要的最佳方法吗?

可能不是。但最好的方法取决于许多因素。也许无论谁编写这些文件,都可以首先将它们放在正确的位置。您还可以检查文件修改时间,但这也可能会失败......所以只要它适合你,我会说去吧:)

于 2012-06-24T01:00:53.023 回答