CentOS Crontab - 提取特定文件名

CentOS Crontab - 提取特定文件名

假设我有一个扩展名为 .7z 的文件,并且有一个提取该文件的 crontab。但名称未知,只知道扩展名,是否可以从 crontab 中提取它?

这是我的 crontab:

2 * * * * root cd /var/path_to_directory && 7za x ".7z*"-p'abc'

然而,这不起作用并导致:there is no such archive

有任何想法吗?

答案1

7za使用两个参数x和运行了该命令.7z*-pabc。文件名和-p选项需要是单独的参数。此外.7z*会匹配文件名开始,而不是以 ..7z结尾的文件名.7z

7za x "*.7z" -p'abc'

*.7z请注意,您可以传递给7za命令(或更准确地说,它对该参数执行一些有意义的操作)这一事实是特定于该命令的。通常,通配符由 shell 扩展,因此如果您想从中提取当前目录中foo.7z唯一的.7z文件,则需要编写7za x *.7z -p'abc'; shell 会将参数x,foo.7z和传递-p'abc'7za命令。那行得通;但7za它有自己的通配符处理(因为它是DOS软件的一个端口,而DOS没有做通配符处理),所以你也可以写7za x "*.7z" -p'abc',其中第二个参数7za是字符串*.7z

相关内容