mv: '/usr/local/dial/5g_test/apn' and '/usr/local/dial/5g_test/apn' are the same file mv: '/usr/local/dial/5g_test/serverip' and '/usr/local/dial/5g_test/serverip' are the same file mv: '/usr/local/dial/5g_test/pingmaxtime' and '/usr/local/dial/5g_test/pingmaxtime' are the same file
时间: 2023-06-29 08:19:20 浏览: 391
根据错误信息,`mv`命令执行失败,因为源文件和目标文件是相同的文件,因此无法移动。这是因为你的源文件和目标文件路径都是`/usr/local/dial/5g_test/apn`、`/usr/local/dial/5g_test/serverip`和`/usr/local/dial/5g_test/pingmaxtime`,因此`mv`命令无法将它们移动到相同的路径中。
你可以将目标路径修改为当前目录,例如:
```
#!/bin/bash
if [ -e /usr/local/dial/5g_test ]; then
mv /usr/local/dial/5g_test/apn ./ ; \
mv /usr/local/dial/5g_test/serverip ./ ; \
mv /usr/local/dial/5g_test/pingmaxtime ./ ; \
echo "文件移动成功"
else
echo "文件不存在"
exit
fi
```
这样,`mv`命令的目标路径就是当前目录,也就是`.`,而不是原来的路径。当所有`mv`命令执行成功后,就会输出`文件移动成功`。
相关问题
if [ -e /usr/local/dial/5g_test ];then mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test mv /usr/local/dial/5g_test/serverip /usr/local/dial/5g_test mv /usr/local/dial/5g_test/pingmaxtime /usr/local/dial/5g_test echo "文件移动成功" else echo "文件不存在" exit fi为啥一直报错具体要怎么修改
这段代码的语法是正确的,但是可能存在以下问题:
1. `mv`命令后面没有加上`&&`或`;`来表示命令执行成功后才执行下一个命令。如果第一个`mv`命令执行失败,那么后面的两个`mv`命令也不会执行。你需要将3个`mv`命令之间加上分号或者并列执行符`&&`,例如:
```
if [ -e /usr/local/dial/5g_test ]; then
mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test ; \
mv /usr/local/dial/5g_test/serverip /usr/local/dial/5g_test ; \
mv /usr/local/dial/5g_test/pingmaxtime /usr/local/dial/5g_test ; \
echo "文件移动成功"
else
echo "文件不存在"
exit
fi
```
2. `mv`命令的目标路径后面没有加上斜杠`/`,这会导致`mv`命令将源文件移动到目标路径下,并将源文件重命名为目标路径的最后一段。你需要将3个`mv`命令的目标路径都加上斜杠,例如:
```
if [ -e /usr/local/dial/5g_test ]; then
mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test/ ; \
mv /usr/local/dial/5g_test/serverip /usr/local/dial/5g_test/ ; \
mv /usr/local/dial/5g_test/pingmaxtime /usr/local/dial/5g_test/ ; \
echo "文件移动成功"
else
echo "文件不存在"
exit
fi
```
你可以尝试以上修改后再执行命令看看是否能够成功移动文件。
#!/bin/bash #systemctl stop startppp #systemctl disable startppp #echo "关闭服务成功" if [ -e /usr/local/dial/5g_test ];then mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test; \ mv /usr/local/dial/5g_test/serverip /usr/local/dial/5g_test; \ mv /usr/local/dial/5g_test/pingmaxtime /usr/local/dial/5g_test; \ echo "文件移动成功" else echo "文件不存在" exit fi哪里错了怎么改
根据你提供的脚本,错误在于`\`符号放置的位置不正确。`\`符号应该放在命令的末尾,表示该命令在下一行继续。你可以将`\`符号放在每行命令的末尾,例如:
```
#!/bin/bash
#systemctl stop startppp
#systemctl disable startppp
#echo "关闭服务成功"
if [ -e /usr/local/dial/5g_test ]; then
mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test/ ; \
mv /usr/local/dial/5g_test/serverip /usr/local/dial/5g_test/ ; \
mv /usr/local/dial/5g_test/pingmaxtime /usr/local/dial/5g_test/ ; \
echo "文件移动成功"
else
echo "文件不存在"
exit
fi
```
这样,当所有`mv`命令执行成功后,就会输出`文件移动成功`。另外,如果你不需要前面的`systemctl`命令,可以将其注释掉或者直接删除。
阅读全文