把/media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/文件路径下的所有子文件夹当中的内容移动到/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/路径下的子文件夹,两个路径的子文件夹名称相同
时间: 2023-07-03 11:32:38 浏览: 94
可以使用以下命令来完成该任务:
```
mv /media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/*/ /media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/
```
该命令将会把 `/media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/` 目录下的所有子目录中的内容移动到 `/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/` 目录下与其同名的子目录中。
相关问题
cd /media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/ for dir in */; do if [ -d "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir" ]; then mv "$dir"* "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir" else mv "$dir" "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/" fi done这个段代码中若子文件中有样本名称相同保留一个即可
可以在if语句中加入一个判断,如果目标文件夹中已经存在同名文件,则跳过该文件的移动操作。修改后的代码如下:
```
cd /media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/
for dir in */;
do
if [ -d "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir" ];
then
for file in $dir*;
do
if [ ! -f "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir/$file" ];
then
mv "$file" "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir"
fi
done
else
mv "$dir" "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/"
fi
done
```
这里使用了一个嵌套的for循环,遍历源文件夹中每个子文件夹下的文件,如果目标文件夹中已经存在同名文件,则跳过该文件的移动操作。
我执行代码显示如下:mv: 无法将 '/media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/RADAR_FRONT_RIGHT/' 移动至 '/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/RADAR_FRONT_RIGHT': 目录非空
这是因为目标目录下已经存在同名的子目录,导致该命令无法成功执行。可以使用以下命令来避免这个问题:
```
cd /media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/
for dir in */; do
if [ -d "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir" ]; then
mv "$dir"* "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/$dir"
else
mv "$dir" "/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/"
fi
done
```
这个命令会逐个遍历源目录下的子目录,并检查目标目录下是否已经存在同名的子目录。如果存在,则只会将源目录下的文件移动到目标目录下的同名子目录中;如果不存在,则会将整个子目录移动到目标目录下。这样就避免了目录非空的问题。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![exe](https://img-home.csdnimg.cn/images/20241231044909.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)