0
我有一個shell腳本在本地拷貝一個S3 bucket(aws)的文件,然後將它複製到另一個地方(由於授權,它不能直接執行),但是想法是這個圖像可能在某個文件夾中,並且shell正在本地創建它,但它只是刪除圖像,並且我發現執行後我有一些空文件夾。所以我的問題是如何刪除文件夾,如果它存在於名稱中?如何在shell中刪除文件及其文件夾?
該副本並刪除我的殼部分:
aws s3 cp s3://$SRC_BUCKET/$PHOTO_NAME $PHOTO_NAME --profile $SRC_PROFILE
# copy to other place
rm $PHOTO_NAME # here PHOTO_NAME may have the parent folder in it (a.jpg,
# or b/a.jpg) and I would like to delete the b folder too
我已經更新了我的代碼的基礎上,下面的答案,但它似乎沒有做什麼預期:創建的臨時目錄,但一切都在它之外做...我的代碼如下所示:
dir="$(mktemp aws-sync-XXXXX)"
pushd "$dir"
COUNT=1
until [ $COUNT -gt $MAX_COUNT ]; do
aws s3 cp s3://$SRC_BUCKET/$PHOTO_NAME $PHOTO_NAME --profile $SRC_PROFILE
# copy to other place
rm $PHOTO_NAME
((MESSAGES_COUNT+=1))
fi
done
popd
rm -rf "$dir"
'do stuff'意思是我的線?你是對的:如果該文件夾已經存在,該怎麼辦?我想它不會再創建它,只需將圖像保存在裏面...但是您的方法很有趣 – sop
沒問題,但是如果我不想同步s3,該怎麼辦?我只是想複製一些文件 – sop
你的意思是「不同步到S3而只是複製一些文件」?我提議的不是特定於S3:它適用於在當前目錄中創建垃圾的任何命令。你通過在新目錄中運行它,完成你的工作,然後刪除整個目錄來清理它。 – hraban