把/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 17:32:39 浏览: 35
您可以使用以下命令来实现上述操作:
```
rsync -av --ignore-existing /media/root1/D/Workspace/paper/data/nuscenes-all/v1.0-trainval02_blobs/samples/ /media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/
```
这个命令使用 `rsync` 命令来将源目录下的所有子文件夹的内容同步到目标目录下的对应子文件夹中,并使用 `--ignore-existing` 参数来忽略已经存在的文件,保留一个。请注意,这将会移动文件,所以请确保您做好了备份。
相关问题
把/media/root1/D/Workspace/paper/data/nuscenes-all/train/v1.0-trainval02_blobs/samples/文件路径下的所有子文件夹当中的内容移动到/media/root1/D/Workspace/paper/data/nuscenes-all/train/samples/路径下的子文件夹,两个路径的子文件夹名称相同
可以使用以下命令来完成该任务:
```
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/` 目录下与其同名的子目录中。
我执行代码显示如下: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
```
这个命令会逐个遍历源目录下的子目录,并检查目标目录下是否已经存在同名的子目录。如果存在,则只会将源目录下的文件移动到目标目录下的同名子目录中;如果不存在,则会将整个子目录移动到目标目录下。这样就避免了目录非空的问题。