把/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 12:32:39 浏览: 145
您可以使用以下命令来实现上述操作:
```
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/` 目录下与其同名的子目录中。
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循环,遍历源文件夹中每个子文件夹下的文件,如果目标文件夹中已经存在同名文件,则跳过该文件的移动操作。
阅读全文