私Googleドライブのコマンドラインスクリプト次のファイルのリストが返されることがあります。
Id Title Size Created
0Bxxxxxxxxxxxxxxxxxxxxxxxxxx backup-2014-12-26.tar.bz2 569 MB 2014-12-26 18:23:32
15日を過ぎたファイルを削除したいと思います。
次のコマンドをどのように実行できますか?
drive delete --id 0Bxxxxxxxxxxxxxxxxxxxxxxxxxx
日付が15日より古いId
すべての行について?Created
ベストアンサー1
明らかに、Google APIを使用して、必要に応じてファイルを具体的に一覧表示して並べ替えることができます。(からdrive --help
):
list:
-m, --max Max results
-q, --query Query (see https://developers.google.com/drive/search-parameters)
...そしてリンクから...
- 2012年6月4日以降に修正されたファイルの検索
moddedDate> '2012-06-04T12:00:00' //デフォルトのタイムゾーンはUTCです。 修正日> '2012-06-04T12:00:00-08:00'
例ではファイルを検索します。最新特定の日付より...
したがって、まったく難しくはありませんが、何らかの理由で呼び出しごとに1つの引数しかdrive
処理できないようです。
mdate_list() { drive list -nq \
"modifiedDate $1 '$(date -ud"$2" '+%FT%T')' and \
mimeType != 'application/vnd.google-apps.folder'"
}
rmdrv() for dfile do drive delete -i "$dfile" || return; done
set -f; unset IFS #no split data mangling, please
while set -- $(mdate_list \< '15 days ago'|cut -d\ -f1)
[ "$#" -gt 0 ]
do rmdrv "$@" || ! break
done
単一のリストで処理するドライブファイルが多すぎる場合にのみwhile
ループを設定しました。ほとんどの場合、使用しなくても簡単に抜け出すことができますが、ファイルが多い場合はそこまでリストがいっぱいになります。もうありません。
残りはあなたが提供したデータに基づいて行われます。ここでは特にフォルダを除外していますが、他の調整が必要な場合は、上記のリンクも確認することをお勧めします。