我想将文件从目录1移动到目录2,在此过程中,如果任何文件已经存在于目标文件夹中,它应该将文件移动到目录3。我已经创建了一个脚本下面,但当文件被跳过使用-n参数的结果是真的。有人可以让我知道如何实现这一点?
#!/bin/bash for file in dir1/*; do mv -n $file /dir2 if [ $? != 0 ]; then mv $file /dir3 fi done
brccelvz1#
假设您有以下设置
mkdir dir{1,2,3} touch dir1/test{1,2,3} touch dir2/test2
下面的代码将test1和test3移动到dir2,将test2移动到dir3,并从dir1中移出
test1
test3
dir2
test2
dir3
dir1
for file in dir1/* ; do fname="${file##*/}" ; if [ -f "dir2/$fname" ]; then mv "$file" dir3/ ; else mv "$file" dir2/ ; fi done
1条答案
按热度按时间brccelvz1#
假设您有以下设置
下面的代码将
test1
和test3
移动到dir2
,将test2
移动到dir3
,并从dir1
中移出