假设我有一个扩展名为 .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
。