Wenn ich mich in einem Verzeichnis namens /usr/share/tcl8.3/encoding befinde, welcher Befehl würde alle Dateien kopieren, die mit „cp“ beginnen und außerdem eine gerade Zahl enthalten (aus der folgenden Liste):
cp1250.enc cp1255.enc cp737.enc cp857.enc cp864.enc cp932.enc
cp1251.enc cp1256.enc cp775.enc cp860.enc cp865.enc cp936.enc
cp1252.enc cp1257.enc cp850.enc cp861.enc cp866.enc cp949.enc
cp1253.enc cp1258.enc cp852.enc cp862.enc cp869.enc cp950.enc
cp1254.enc cp437.enc cp855.enc cp863.enc cp874.enc
Antwort1
Haben Sie das probiert?
cp cp*[24680].enc destination
Antwort2
Versuchen:cp cp*[02468]* /path/to/dest/
Antwort3
Befehl
find . -maxdepth 1 | grep -P "/cp\d*[02468]\.enc$" | xargs -I '{}' cp '{}' destination
Wie es funktioniert
find . -maxdepth 1
nicht-rekursiv (-maxdepth 1
) listet alle Dateien im aktuellen Verzeichnis auf (.
)grep -P "..."
vergleicht jede Zeile mit demregulären Ausdruck...
/
und\.enc
sind die Zeichenfolgen/
und.enc
.\d*
ist eine beliebige Anzahl von Ziffern.[02468]
ist genau eine gerade Ziffer.$
signalisiert das Ende einer Zeile.
xargs -I '{}' cp '{}' destination
führt den Befehl auscp '{}' destination
wobei „wobei
'{}'
“ durch jede vom vorherigen Befehl weitergeleitete Zeile ersetzt wird.