
Ich habe eine tar.bz2-Datei aus meinen Downloads nach /usr/src verschoben, wo ich gerne alle Dinge speichere, die ich auf meinem System installiere. Jetzt habe ich die Datei extrahiert und möchte ihren Inhalt nach /usr/share/icons verschieben. Aber ich möchte die tar.bz2-Datei selbst nicht verschieben:
# ls -l | grep Comix
-rw-rw-r-- 1 guarddog guarddog 2190951 May 26 11:03 ComixCursors-0.8.2.tar.bz2
drwxr-xr-x 3 root root 4096 Oct 23 2013 ComixCursors-Black
drwxr-xr-x 3 root root 4096 Oct 23 2013 ComixCursors-Blue
drwxr-xr-x 3 root root 4096 Oct 23 2013 ComixCursors-Green
drwxr-xr-x 3 root root 4096 Oct 23 2013 ComixCursors-Orange
Im Ausgabebefehl möchte ich alles außer tar.bz2 innerhalb des Terminals verschieben.
Ich habe Folgendes versucht, aber leider verschiebt es auch das tar.bz2:
mv Comix*[!tar.bz] /usr/local/share
Ich hatte erwartet, dass der Negationsoperator die Datei mit der Endung tar.bz ausschließt. Die folgende Lösung ist genau das, wonach ich gesucht habe. Ich wollte find nicht mit komplizierten Flags verwenden.
Antwort1
Sie können die GLOBIGNORE
Variable von verwenden bash
:
GLOBIGNORE=ComixCursors-0.8.2.tar.bz2
Führen Sie nun Folgendes aus:
mv ComixCursors* /usr/share/icons/
Beachten Sie auch, dass es gut ist, die Variable zu löschen, wenn Sie mit dem Vorgang fertig sind, unset
um unerwünschte Szenarien zu vermeiden:
unset GLOBIGNORE
Oder
GLOBIGNORE=
Antwort2
Verwenden Sie das gute alte find
:
find /usr/src -maxdepth 1 -type f -name "Comix*[^\.tar\.bz2]" -print0 | xargs -I{} -0 mv {} /usr/share/icons/
Antwort3
Es gibt auch einen einfachen Befehl, den Sie beispielsweise in Ihrem Home-Verzeichnis verwenden können. Wir haben einen Ordner „Xtest“, der test.tar.gz
und usw. enthält test.txt
, test2.txt
und einen leeren Ordner „Xtest2“, in den wir alle Dateien außer diesen verschieben möchten .tar.gz
:
cd ~/Xtest
mv !(test.tar.gz) ~/Xtest2
Der gesamte Inhalt außer test.tar.gz
wird in den Ordner verschoben Xtest2
.