下面,我试图找到可能在多个目录中的文件的最新版本。
示例目录:
~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
脚本应该按照上面的尝试复制最新文件。
两个问题:
首先,这是实现我想要的最佳方法吗? 其次,上面的错误是什么?
答案 0 :(得分: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;
答案 1 :(得分:1)
......上面的错误?
变量赋值。你不应该在=
标志周围加上额外的空格。以下应该有效:
FILE=$(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)
......这是实现我想要的最佳方法吗?
可能不是。但最好的方法取决于很多因素。也许编写这些文件的人可以将它们放在正确的位置。你也可以查看文件修改时间,但也可能会失败......所以只要它适合你,我就说去吧:)