如何将 .zip 文件解压缩到所有包含 .php 文件的目录,其中包含文本“house”?
就像是:
grep -rl --include='index.php' 'house' /directory/path/of_the_index_file* | xargs unzip /directory2/path/file.zip -d /directory/path/of_the_index_file/
澄清:我只是想将一个包含 2 个文件和一个目录的简单 .zip 文件提取到服务器上包含 index.php 文件的所有目录,该文件的代码中包含特定的字符串。
我将非常感谢任何帮助。
你可以
xargs sh -c '...'
一起使用$(dirname "$1")
:或者更简单,使用 GNU
parallel
,它具有以下dirname
功能{//}
:如果需要,可以通过添加
-j1
到 来避免并行化parallel
。如果
parallel
未安装,请使用以下命令安装:您可能会考虑
unzip
在开始时运行一次到临时目录并使用cp
orln
insidexargs
orparallel
。注意:对于这两种解决方案,我都使用
grep -Z
withxargs/parallel -0
以避免路径中某处出现换行问题。即使它不影响你,照顾它也是一个好习惯。