Ich muss einige doppelte Dateien sammeln und möchte Namenskollisionen vermeiden. Das Problem ist, dass diese Dateisammlung möglicherweise durch eine andere Ausführung meines Skripts hinzugefügt wird, bevor die Dateien bereinigt werden und die Anzahl nur weiter erhöht werden soll.
Ich entschied mich für eine einfache till-Schleife, um die Zahl wie folgt zu erhöhen.
until [[ ! -f ${PWD}/DUPES/${num}-$1 ]]; do
num=$((num +1))
done
mv --no-clobber $1 ${PWD}/DUPES/${num}-$1
Ich kann mir nicht vorstellen, jemals 1k Dateien in einem extremen Beispiel zu überschreiten, also sind meine Fragen ...
Ist dies ein schrecklich ineffizienter Weg, um dies zu erreichen? Sollte ich die vorhandenen Dateien analysieren, um die höchste führende Zahl zu erhalten, die von dort aus inkrementiert werden kann, oder ist dies für das von mir vorgestellte extreme Beispiel in Ordnung? Oder gibt es insgesamt einen besseren Weg?
mktemp
, möglicherweise mit Ihrem Dateinamen als Basis. (Wir gehen dann davon aus, dass mktemp
dies seine Arbeit effizient erledigt.)