使用 shell 脚本从目录中删除特定文件
Remove specific file from directory using shell script
我正在尝试使用 shell 脚本编写脚本以从文件夹中删除文件。
我是 shell 脚本的新手,我尝试编写一个 shell 脚本程序来从目录中删除特定文件。
这是我尝试过的示例程序,我想从 REPORT_HOME/lib 文件夹中删除特定的 jar。
set OLD_DIR=%cd%
echo %REPORT_HOME%
set REPORT_HOME=%REPORT_HOME%\REPORT_HOME
cd %REPORT_HOME%\lib
if [ -f antlr-2.7.7.jar ]; then
rm -rf "antlr-2.7.7.jar"
cd %OLD_DIR%
这里REPORT_HOME
是我设置的环境变量,lib是我要删除的文件夹antlr-2.7.7.jar
文件
在命令提示符下,我可以直接删除特定文件,但我只想通过命令提示符下的 运行 shell 脚本删除文件。
在 运行 上面的 sh 文件之后,来自命令提示符的特定文件没有被删除。
谁能帮我解决这个问题?
提前致谢。
您混入了 Windows CMD 语法。正确的 sh
脚本看起来像
OLD_DIR=$(pwd)
echo "$REPORT_HOME"
REPORT_HOME="$REPORT_HOME/REPORT_HOME"
cd "$REPORT_HOME/lib"
if [ -f antlr-2.7.7.jar ]; then
rm -rf "antlr-2.7.7.jar"
cd "$OLD_DIR"
然而,这太复杂了。要删除文件,只需
rm -f "$REPORT_HOME/REPORT_HOME/lib/antlr-2.7.7.jar"
-f
标志表示如果文件不存在则不报错继续(并且不询问是否有权限继续进行,否则会导致 rm
提示确认).
或许还可以看看
这假定变量 REPORT_DIR
不为空,并且不以破折号开头。为了获得最大的稳健性,请尝试
rm -f -- "${REPORT_HOME?variable must be set}/REPORT_HOME/lib/antlr-2.7.7.jar"
我正在尝试使用 shell 脚本编写脚本以从文件夹中删除文件。
我是 shell 脚本的新手,我尝试编写一个 shell 脚本程序来从目录中删除特定文件。 这是我尝试过的示例程序,我想从 REPORT_HOME/lib 文件夹中删除特定的 jar。
set OLD_DIR=%cd%
echo %REPORT_HOME%
set REPORT_HOME=%REPORT_HOME%\REPORT_HOME
cd %REPORT_HOME%\lib
if [ -f antlr-2.7.7.jar ]; then
rm -rf "antlr-2.7.7.jar"
cd %OLD_DIR%
这里REPORT_HOME
是我设置的环境变量,lib是我要删除的文件夹antlr-2.7.7.jar
文件
在命令提示符下,我可以直接删除特定文件,但我只想通过命令提示符下的 运行 shell 脚本删除文件。
在 运行 上面的 sh 文件之后,来自命令提示符的特定文件没有被删除。
谁能帮我解决这个问题?
提前致谢。
您混入了 Windows CMD 语法。正确的 sh
脚本看起来像
OLD_DIR=$(pwd)
echo "$REPORT_HOME"
REPORT_HOME="$REPORT_HOME/REPORT_HOME"
cd "$REPORT_HOME/lib"
if [ -f antlr-2.7.7.jar ]; then
rm -rf "antlr-2.7.7.jar"
cd "$OLD_DIR"
然而,这太复杂了。要删除文件,只需
rm -f "$REPORT_HOME/REPORT_HOME/lib/antlr-2.7.7.jar"
-f
标志表示如果文件不存在则不报错继续(并且不询问是否有权限继续进行,否则会导致 rm
提示确认).
或许还可以看看
这假定变量 REPORT_DIR
不为空,并且不以破折号开头。为了获得最大的稳健性,请尝试
rm -f -- "${REPORT_HOME?variable must be set}/REPORT_HOME/lib/antlr-2.7.7.jar"