Unix Shell脚本-将文件从父文件夹和子文件夹单独复制到新文件夹中

时间:2019-01-06 20:13:28

标签: unix

我有一个带文件的父文件夹和许多带文件的子文件夹。我需要将文件单独从父文件夹和子文件夹复制到OutputFolder。下面是文件夹结构。

ParentFolder:Parent_1.txt,Parent_2.txt
    子文件夹1:Folder1_1.txt,Folder1_2.txt
    子文件夹2:Folder2_1.txt,Folder2_2.txt

OutputFolder: Parent_1.txt,Parent_2.txt,Folder1_1.txt,Folder1_2.txt,Folder2_1.txt,Folder2_2.txt

我尝试了下面的代码,但是它将所有文件从子文件夹复制到父文件夹,然后移至OutputFolder。另外,当我调用“ sh Filename.sh”时,会丢失`-exec'的参数 cp:无法统计'20190105'$'\ r''/ *':没有此类文件或目录。

Today=$(date +%Y%m%d -d "today")
mkdir $Today
Yesterday=$(date +%Y%m%d -d "yesterday")
find $Yesterday -iname "*.txt" -exec cp {} $Yesterday \;
cp $Yesterday/* $Today/

为此寻求帮助!

2 个答案:

答案 0 :(得分:0)

  

我需要将文件单独从父文件夹和子文件夹复制到OutputFolder。

     

我尝试了下面的代码,但是它将所有文件从子文件夹复制到父文件夹

要直接将文件复制到 OutputFolder $Today,只需在$Today之后指定$Yesterday而不是-exec cp {}

  

我缺少`-exec'cp的参数:无法统计'20190105'$'\ r'/ *':没有这样的文件或目录。

\r是脚本中Windows行尾的标志-删除CR或将其保存为Unix格式。

答案 1 :(得分:0)

使用此:

string[]

将深度限制为当前目录。注意大括号中的引号。