Welcome to the Linux Foundation Forum!

bash command line job...

Options

Hi all,

I don't get it working, following is my problem:

I have a LOT of directories with 631000 files (.JPG) in it. Quite some directories have SUB-directories called "Foto's".

What I like to do is FIND all those SUB-directories out of the bunch directories, copy all the files out of that "Foto's" directory to 1 level higher and remove the just empty "Foto's" directory.

Following works:

find / -name ./mnt/www/ -name Foto\'s

I get a list of all the Directories I like to get rid of...but first the files in these directories I have to copy a level higher. Who can help me out please??

Greetz,

Jackoo

Comments

  • marc
    marc Posts: 647
    edited December 2011
    Options
    while read -r directories ; do {
        mv "${directories}"/* "${directories}"/.. || { echo "Could not move files from ${directories}"; exit 1;}
        rmdir "${directories}" || {echo "Could not remove directory ${directories}"; exit 1;}
    } done < <(find / -name "Foto\'s" -type d ! -emtpy)
    

    That should work :)

    Regards

    NOTE: I did that out of my head, not 100% secure ( there are things it doesn't check)
  • jackoo
    Options
    Cool thanx! Needed this, will try it tonight and let you know :-)
  • jackoo
    jackoo Posts: 3
    edited January 2012
    Options
    All files out of 1005 random directories (called "Foto's") are moved to its upper directory and all 1005 empty dir. "Foto's" are removed by following command:


    find ./ -name "Foto\'s" | ./script.b


    Down here the content of the file script.b (thanks to MARC! :-)
    while read -r directories ; do {

    mv "${directories}"/* "${directories}"/.. || { echo "Could not move files from ${directories}"; exit 1;}

    rmdir "${directories}" || {echo "Could not remove directory ${directories}"; exit 1;}

    } done
  • marc
    marc Posts: 647
    Options
    Glad it worked! :)

Categories

Upcoming Training