mv: '/usr/local/dial/5g_test/apn' and '/usr/local/dial/5g_test/apn' are the same file
时间: 2023-06-30 19:15:38 浏览: 152
当你执行命令`mv /usr/local/dial/5g_test/apn /usr/local/dial/5g_test`时,如果出现错误提示`mv: '/usr/local/dial/5g_test/apn' and '/usr/local/dial/5g_test/apn' are the same file`,这是因为源文件和目标文件相同,也就是你想要将`/usr/local/dial/5g_test/apn`移动到原来的目录`/usr/local/dial/5g_test`下,这是没有必要的。如果你想要将`/usr/local/dial/5g_test/apn`文件夹下的内容移动到`/usr/local/dial/5g_test/`目录下,你可以使用以下命令:
```
mv /usr/local/dial/5g_test/apn/* /usr/local/dial/5g_test/
```
这将把`/usr/local/dial/5g_test/apn/`文件夹下的所有文件和子目录移动到`/usr/local/dial/5g_test/`目录下。
相关问题
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
根据错误信息,`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
```
你可以尝试以上修改后再执行命令看看是否能够成功移动文件。
阅读全文