Xargs + Find Help

Guys i want to run a command to list all directories that havn't been modified in over 548 days ( 1.5 yrs ).
Id like to run a script to first print what the command finds ( so i get a list of the files pre move ... i have a script set for this :
find /Path/Of\ Target/Directory/ -type d -mtime +548 -print0 | xargs -0 du -cHh print >/tmp/archive_log_file.txt 2>&1

What id like to run after is a MOVE of those directories listed into another directory on another volume.The directories in question are exactly 3 in depth from the parent directory.
I need to preserve the complete structure of each directory, as the directory is full of associated files upto fifty individual files per directory.
These directories can be up to 10GB each and there might be over 100 of them so exec isn't going to handle it ..Xargs and mv seem the best case, unless anyone has a better take on this ..

Be carefull of relying on modification times of directories, if files are updated within a directory the mtime of the dir will not change. It's only if a file is added or removed from the directory that the timestamp is changed, I usually find it much safer to check the times on individual files.

Would opening a folder cause the mod date to change?
Im struggling with a command to mv the whole directory with no recursion from a depth of 3 directory ie only mv directory 3 deep, if i just move the files ill lose the associations withinside of that directory, any help would be great, my pipe fu isnt great...

Opening a folder shouldn't cause the mtime to change. But creating a file in the directory will.

Now suppose you had these folders shared with windows machines. Windows Explorer creates tumbnail cache files (thumbs.db) in any directory it opens that contains documents that have thumbnails. So then answer is both no and yes.

As for easy way to move files, if you have a fairly recent version of gnuutils you can avoid getting sub-directory files with something like this:

find /path/to/your/directory -maxdepth 1 -type f -print0 | xargs --null --no-run-if-empty mv --target-directory=/new/dir/for/your/files/

On other systems --null == -0 --no-run-if-empty == -r --target-directory == -t

Chubler thanks for this,BSD darwin, no win/linux...
the '--' command is illegal so tried replacing with suggestions... no dice ..
find /path/to/your/directory -maxdepth 1 -type f -mtime +5 -print0 | xargs -0 mv -v /path/to/new/directory/ (-v is supposed to give verbose show of files after moving)
whinges about the usage .. Its like xargs isnt piping the source directory path to mv and mv wants both source and target directory paths written for it ala : mv /source/directory/ /target/directory/
fsking thing.