shell判断文件是否存在,若存在则删除
时间: 2024-05-12 12:17:16 浏览: 258
您可以使用以下命令判断文件是否存在,并在存在时删除该文件:
```shell
if [ -f <文件路径> ]; then
rm <文件路径>
fi
```
其中,`<文件路径>` 为要判断和删除的文件的绝对路径或相对路径。如果文件存在,则 `-f` 参数返回 `true`,执行 `rm` 命令删除该文件。
相关问题
写一个shell判断文件A和B是否存在,存在删除后重新建立,不存在直接建立
可以使用以下的Shell脚本来实现:
```
#!/bin/bash
if [ -e A ]; then
rm A
fi
if [ -e B ]; then
rm B
fi
touch A
touch B
```
上述脚本中,首先使用`-e`参数判断文件A和B是否存在,如果存在则使用`rm`命令删除,然后使用`touch`命令重新建立。如果文件不存在,则直接使用`touch`命令建立。
注意:上述脚本只能在当前目录下建立或删除文件A和B。如果需要在其他目录操作,请在文件路径前加上相应的目录路径。
编写一个shell脚本,先查看一下 /root/test 这个名称是否存在,不存在使用touch创建一个普通文件,存在则判断是否为普通文件,如果为普通文件则删除再创建一个文件名test的目录,如果存在且为目录,则删除
你可以编写一个简单的bash shell脚本来完成这个任务。下面是一个示例脚本:
```bash
#!/bin/bash
# 检查 /root/test 是否存在
if [ ! -e "/root/test" ]; then
# 文件不存在,使用 touch 创建一个普通文件
echo "File /root/test does not exist. Creating a regular file..."
touch /root/test
else
# 文件或目录存在
if [ ! -f "/root/test" ]; then
# 如果是普通文件,删除并创建一个名为 test 的目录
echo "A non-directory file exists at /root/test. Deleting and creating directory..."
rm "/root/test"
mkdir "/root/test"
elif [ -d "/root/test" ]; then
# 如果是目录,直接删除
echo "Directory /root/test already exists. Removing..."
rmdir "/root/test"
mkdir "/root/test"
else
echo "Error: Unknown file type at /root/test."
fi
fi
```
在这个脚本中,我们首先检查`/root/test`是否存在。如果不存在,就触发表达式`touch /root/test`。然后再次检查,如果是文件而非目录,我们就删除它并创建一个名为`test`的目录;如果已经是一个目录,我们就删除后再重建。
阅读全文