Mein Originalbild ist img.jpg.
Wie kann ich doppelte Bilder entfernen, nämlich img.jpg1, img.jpg2, img.jpg3? Ich möchte das Bild mit der Erweiterung .jpg behalten.
Danke
Antwort1
GUI-Lösung
- Öffnen Sie in Nautilus den Auswahldialog mit ctrl+S
- Geben Sie ein
*.jpg
, um alle Bilder mit der Erweiterung .jpg auszuwählen
- Kehren Sie die Auswahl mit ctrl+ shift+ ium, um die Bilder ohne die Erweiterung .jpg auszuwählen (was Sie möchten).
- Klicken Sie mit der rechten Maustaste und wählen Sie aus
Move to trash
oder drücken Sie einfach die deleteTaste.
Von hier aus können Sie auch alles andere tun, was Sie möchten – komprimieren, ausschneiden usw.
Antwort2
Kombinieren Sie den find
Befehl mit -regex
und -exec
Flags. In diesem speziellen Beispiel -exec
werden einfach alle Duplikatsbilder in den Papierkorb verschoben, sodass Sie sie bei Bedarf immer noch wiederherstellen können. Sie können den rm
Befehl später verwenden oder den Papierkorb über die GUI leeren.
testerdir:$ ls
img.jpg img.jpg1 img.jpg2 img.jpg3
testerdir:$ find . -regex ".*\.jpg[1-9]+" -print -exec mv -t $HOME/.local/share/Trash/ {} +
./img.jpg1
./img.jpg3
./img.jpg2
testerdir:$ ls $HOME/.local/share/Trash
expunged/ files/ img.jpg1 img.jpg2 img.jpg3 info/
testerdir:$ ls
img.jpg
Antwort3
bash
Nicht-rekursive Verwendung von :
shopt -s extglob nullglob
rm img.jpg+(?)
Wenn Sie am Ende nur Ziffern haben:
rm img.jpg+([0-9])
Rekursiv:
shopt -s globstar extglob nullglob
rm **/img.jpg+(?)
Falls am Ende nur Ziffern stehen:
rm **/img.jpg+([0-9])
Hier haben wir einige Shell-Optionen verwendet:
extglob
ermöglicht uns, erweiterte Glob-Muster abzugleichen, d. h. es+(?)
wird ein oder mehrere Vorkommen beliebiger Zeichen abgeglichen. Dies sollte in einer interaktiven Shell standardmäßig aktiviert sein.nullglob
ergibt einen Nullstring, wenn keine Übereinstimmung gefunden wirdglobstar
ermöglicht uns eine rekursive Suche mit**