错误cp:无法创建常规文件“”:没有这样的文件或目录

时间:2014-01-05 17:12:17

标签: bash shell unix

我正在尝试将已搜索过的文件从源文件夹移动到目标文件夹中,并使它们只在进程中读取,下面是我当前的代码,copyfile()是一个子例程,它迭代所有文件的进程在源文件夹中。

    #!/bin/bash

    copyfile()
    {     
    ls -l "$f"
    read -p "Copy y/n? " yn
    if [ "$yn" == "y" ]
    then
        cp "$f" "$2"  
    else
        echo $f skipped
    fi
    }

    if [ -d $1 ] # $1 source folder
   then
       echo
   else
       echo This directory does not exist
   fi
   if [ -d $2 ] # $2 target folder
   then
       echo Directory Exists
   else
       mkdir $2
       echo $2 created
   fi
   for f in $1/*
   do
       echo "file is $f"
       copyfile "$f"
   done

我目前还没有设法将权限更改用于复制的文件(当他们使用不同版本的代码时)。

提前非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

让你的功能如下:

copyfile() {
    ls -l "$1"
    read -p "Copy y/n? " yn
    if [ "$yn" == "y" ]
    then
        cp "$1" "$2"
        chmod 644 "$2" 
    else
        echo "$1 skipped"
    fi
}

并将其称为:

for f in $1/*
do
       echo "file is $f"
       copyfile "$f" "$2"
done