bash 用于从包含 *.jar 和 *.pom 的多个目录中删除 *.pom 文件的脚本
bash script to Remove *.pom file from multiple directories which contains *.jar and *.pom aswell
Linux 系统中的多个目录包含*.jar 和*.pom 文件。但是,某些目录仅包含 *.pom 文件。我正在尝试删除但无法删除
使用下面的脚本,它从所有包含 *.jar 的目录中删除所有 *.pom 文件。
#!/bin/sh
sudo find /var/opt/jfrog/artifactory/2021*/repositories/ -type f \( -name "*.pom" \) -exec rm {} \;
我试图从如下所示的 pic 目录结构中仅删除 *.pom 文件。
目录结构
不是直接 运行ning rm
,而是 运行 一个检查 jar
文件并仅在没有 pom
文件时删除 pom
的脚本=12=]。这里我们使用 -execdir
来使这更容易和更有效:
find ... -type f -name '*.pom' -execdir bash -c \
'compgen -G \*.jar > /dev/null || rm "$@"' . {} +
我会编码:
#!/bin/bash
find /var/opt/jfrog/artifactory/2021*/repositories/ -name '*.pom' |
while IFS= read -r file; do
if [ ! -f ${file%.pom}.jar ] ; then rm $file ; fi
done
解释:find
将所有 .pom 文件发送到 while
循环。对于每个 .pom 文件,循环检查相应的 .jar 文件是否不存在,在这种情况下,它会删除 .pom 文件。
Linux 系统中的多个目录包含*.jar 和*.pom 文件。但是,某些目录仅包含 *.pom 文件。我正在尝试删除但无法删除
使用下面的脚本,它从所有包含 *.jar 的目录中删除所有 *.pom 文件。
#!/bin/sh
sudo find /var/opt/jfrog/artifactory/2021*/repositories/ -type f \( -name "*.pom" \) -exec rm {} \;
我试图从如下所示的 pic 目录结构中仅删除 *.pom 文件。
目录结构
不是直接 运行ning rm
,而是 运行 一个检查 jar
文件并仅在没有 pom
文件时删除 pom
的脚本=12=]。这里我们使用 -execdir
来使这更容易和更有效:
find ... -type f -name '*.pom' -execdir bash -c \
'compgen -G \*.jar > /dev/null || rm "$@"' . {} +
我会编码:
#!/bin/bash
find /var/opt/jfrog/artifactory/2021*/repositories/ -name '*.pom' |
while IFS= read -r file; do
if [ ! -f ${file%.pom}.jar ] ; then rm $file ; fi
done
解释:find
将所有 .pom 文件发送到 while
循环。对于每个 .pom 文件,循环检查相应的 .jar 文件是否不存在,在这种情况下,它会删除 .pom 文件。