Agora tenho certeza de como dizer isso, mas:
Estou copiando todos os arquivos .zip mais recentes em cada subdiretório recursivo dentro dessa pasta original:
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original"
Por exemplo
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test1/zip11.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test1/zip12.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test2/zip21.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test2/test3/zip31.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test2/test3/zip32.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original/test2/test3/zip33.zip"
Isto iria copiar zip12.zip, zip21.zip, zip33.zip (estes são os mais novos em cada diretório) para a pasta de backup.
Eu tenho este trabalho, então tudo isso copia para este diretório:
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup"
Então parece que:
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/zip12.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/zip21.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/zip33.zip"
Eu quero usar a mesma estrutura de árvore (do original em diante) para que pareça:
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/test1/zip12.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/test2/zip21.zip"
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup/test2/test3/zip33.zip"
Alguém pode me apontar na direção certa?
Aqui está o meu código:
#THE DIRECTORY THE ORIGINAL FILE IS STORED IN
MYDIR="/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original"
#THE DIRECTORY THE BACKUP FILE WILL BE STORED IN
DEST="/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup1/"
#FIND ALL DIRECTORIES AND NAME TEMP DIRECTORY AS CURRENT DIRECTORY
find "${MYDIR}" -type d | while read CURRENTDIRECTORY;
do
#FINDS THE NEWEST ZIP FILE IN T HE DIRECTORY
NEWESTFILE='ls -dtr1 "${CURRENTDIRECTORY}"/*.zip | tail -n 1'
echo "NF = $NEWESTFILE"
#CHECK IF FILE IS PRESENT
if [ -z "${NEWESTFILE}" ] ; then
echo "No file to copy"
#CHECK IF FILE IS A DIRECTORY
elif [ -d "${NEWESTFILE}" ] ; then
echo "Newest file is a directory"
#COPY NEWEST FILE TO DEST
else
echo "Copying ${NEWESTFILE} --> ${DEST}"
cp -p "${NEWESTFILE}" "${DEST}"
fi
done