私はadbシェルを使ってAndroidデバイス上の複数のファイルにタイムスタンプを設定したいと思います。
何らかの理由で指定された特定のタイムスタンプを使用してタッチを実行しても機能しません。また、タッチを使用するAndroid busyboxシェルではファイルグロービングは機能しません。
そのため、フォルダ内のすべてのファイルに対してtouchコマンドを実行するためにシェルスクリプトを使用しました。
for file in `ls`; do touch "$file"; done
問題は、アルファベットの逆順で実行し、連続的に完了することを保証し、a.pngタイムスタンプが常にb.pngより遅くなるように特定の順序でコマンドを実行しないことです。
可能ですか?
答え1
タッチを使用して将来の時間を設定できます。
T=$(date +%s)
for file in $(ls | sort -r); do
touch -t $(date '+%Y%m%d%H%I.%S' --date="@$T") $file
let T=$T+1
done
sort
お使いのデバイスにない場合は、インストールされていることをbusybox
確認してください。
答え2
可能ですか?
はい、いいえ。高性能ではありません。問題は、「a.png」タイムスタンプを常に指定することです。〜の後b.png"よりも時間がかかることは、特定のMakefileがそれを処理する方法に関連しているようです。
for file in `ls | sort -r`; do touch "$file"; sleep 1; done
はい、わかりました。sleep
逆になります。ただし、これはmake
予測可能な方法で実行する必要がある作業です。