我正在尝试运行命令
mv /var/www/my_folder/reports.html /tmp/
运行正常。但我想设置一个条件,例如如果该文件存在则仅运行命令。有这样的事吗
我可以放一个 shell 文件来代替。 对于外壳,尝试了以下事情
if [ -e /var/www/my_folder/reports.html ]
then
mv /var/www/my_folder/reports.html /tmp/
fi
但我需要一个命令。有人可以帮我解决这个问题吗?
移动文件
/var/www/my_folder/reports.html
仅当它存在且常规文件时:
[ -f "/var/www/my_folder/reports.html" ] && mv "/var/www/my_folder/reports.html" /tmp/
-f
- 如果文件存在并且是常规文件,则返回 true
值如果存在文件,然后通过标准错误输出移动或回显消息
test -e /var/www/my_folder/reports.html && mv /var/www/my_folder/reports.html /tmp/ || echo "not existing the file" >&2
也许您的用例是“如果不存在则创建,然后始终复制”。 然后:
touch myfile && cp myfile mydest/
您可以简单地在 shell 脚本中完成
#!/bin/bash
# Check for the file
ls /var/www/my_folder/ | grep reports.html > /dev/null
# check output of the previous command
if [ $? -eq 0 ]
then
# echo -e "Found file"
mv /var/www/my_folder/reports.html /tmp/
else
# echo -e "File is not in there"
fi
希望有帮助