さて、これをどのように表現すべきかわかりますが、
すべての最新の.zipファイルをこのソースフォルダ内の各再帰サブディレクトリにコピーします。
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Original"
例えば
"/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"
これにより、zip12.zip、zip21.zip、zip33.zip(各ディレクトリの最新ファイル)がバックアップフォルダにコピーされます。
私はこれを行い、すべての内容をこのディレクトリにコピーしました。
"/Users/Stu/Documents/Hoffi Work/FTP Backup Shell Script/Backup"
だからそれは次のようになります:
"/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"
元のバージョンと同じツリー構造を使用したいので、
"/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"
誰もが正しい方向に私を指すことができますか?
これは私のコードです。
#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
ベストアンサー1
rsync
代わりに使用できますcp
。
rsync -R "${CURRENTDIRECTORY}"/"${NEWESTFILE}" "${DEST}"
出力パスを相対パスMYDIR
(たとえば)に制限するには、find Loopの前後にディレクトリを入力するtest1/zip12.zip
必要があります。cd $MYDIR
find .
古いファイルをバックアップディレクトリに保存する場合は、rsync --ignore-existing
.itを使用することもできます。新しいファイルのみがコピーされます。
もっと読む人の同期。