Wenn Sie eine tragbare Festplatte oder einen USB-Speicher an einen Mac anschließen und dann an Windows oder Linux anschließen, Beachten Sie, dass eine große Anzahl von .DS_Store- und metadateiähnlichen ._ [vorhandenen Dateinamen] vorhandener Dateien erstellt wird. Diese Dateien sind kleiner als die Sektorgröße des Dateisystems, sodass Tausende von Dateien einige GB verschwenden können. Genau das war es.
Unter Linux können Sie es anscheinend mit `find. -Name" ._ * "-exec rm -f {} \;`
usw. löschen.
Selbst wenn ich versuche, mit dem Windows Explorer nach ._ * zu suchen und es zu löschen, ist das Löschen sehr schwierig, da normale Dateien und Verzeichnisse, die nicht ._ * sind, abgefangen werden.
Also habe ich ein einfaches Skript mit Python für diejenigen erstellt, die in Schwierigkeiten sind und für mich. Da keine strengen Dateiprüfungen durchgeführt werden, besteht außerdem die Möglichkeit, dass Dateien, die nicht gelöscht werden sollen, gelöscht werden. Verwenden Sie dieses Skript daher auf eigenes Risiko.
import os
import sys
import shutil
def deldirs(baseDir):
print "Start " + baseDir
ds = [baseDir]
while True:
if len(ds) == 0:
print "Finished!!"
break
# Pop next target dir
d = ds.pop(0)
# Delete file
fs = os.listdir(d)
for fn in fs:
fp = d + "/" +fn
if fn[:2] == "._" or fn == ".DS_Store":
if os.path.isfile(fp):
print "Del File " + fp
os.remove(fp)
#elif os.path.isdir(fp):
# print "Del Dir " + fp
# shutil.rmtree(fp)
if __name__ == "__main__":
if len(sys.argv) != 2:
print "Usage: delmacfile.py TARGET_DIR"
exit(1)
baseDir = sys.argv[1]
if os.path.isdir(baseDir) == False:
print "Please arg1 is a TAGET_DIR"
exit(2)
deldirs(baseDir)
Es scheint eine Möglichkeit zu geben, dies mit Windows-Befehlen zu tun, aber es ist für Python-Liebhaber.
Recommended Posts