shell 如何在linux中将现有文件重定向到不同的目录?

r9f1avp5  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(111)

我想将文件从目录1移动到目录2,在此过程中,如果任何文件已经存在于目标文件夹中,它应该将文件移动到目录3。
我已经创建了一个脚本下面,但当文件被跳过使用-n参数的结果是真的。有人可以让我知道如何实现这一点?

#!/bin/bash

    for file in dir1/*; do
      mv -n $file /dir2
      if [ $? != 0 ]; then
       mv $file /dir3
      fi
    done
brccelvz

brccelvz1#

假设您有以下设置

mkdir dir{1,2,3}
touch dir1/test{1,2,3}
touch dir2/test2

下面的代码将test1test3移动到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

相关问题