移动文件并根据文本文件将它们放入文件夹中

时间:2013-12-24 15:04:19

标签: linux

我需要从ORIGIN移动文件并根据文本文件“toto.txt”中包含的信息将它们放到DESTINATION

我不知道如何编写部分代码说: 相应地放置这些文件与toto.txt中包含的信息 DESTINATION文件夹中的子文件夹结构“ toto.txt包含ORIGIN的文件夹结构,文件必须相应地移动到DESTINATION但是具有原始文件夹结构位置。

# My working Paths 
    MY_DIR1="/media/nss/MBVOL1/TEST/ORIGIN"
    MY_DIR2="/media/nss/MBVOL1/TEST/DESTINATION"


# Flag files older than 1 day and list their name\full path to “TOTO” text file
        echo "REPORT Created"
    cd $MY_DIR1 &&  find . -mindepth 0 -maxdepth 40 -mtime +1 -type f > toto.txt
    cp $MY_DIR1/toto.txt /$MY_DIR2


# Flag files older than 1 day then MOVE file to “DESTINATION” Folder
    echo "FILES Moved"
    find $MY_DIR1 -mindepth 0 -maxdepth 400 -type f -mtime +14 -exec mv '{}'  $MY_DIR2 \; 

2 个答案:

答案 0 :(得分:0)

使用类似的东西......

cat ${MY_DIR2}/toto.txt | while read FILE ; do
    mv -v "${MY_DIR1}/${FILE}" "${MY_DIR2}"
done

答案 1 :(得分:0)

试试这个:

cd "$MY_DIR1"
# Duplicate directory structure
find . -type d -exec mkdir -p "$MY_DIR2"/{} \;
# move files older than 1 day
find . -type f -mtime +1 -exec mv {} "$MY_DIR2"/{} \;

您可以将它们组合成一个命令:

find . -type d -exec mkdir -p "$MY_DIR2"/{} \; -o -type f -mtime +1 -exec mv {} "$MY_DIR2"/{} \;