Ich versuche, alle *.tif
Dateien von ./alt nach ./neu zu kopieren. In ./alt habe ich viele Unterverzeichnisse mit unterschiedlichen Dateien und in ./neu brauche ich nur TIF-Dateien, ohne Ordnerbaum.
Also versuchte ich
cp -vR ./old/*.TIF ./new`
Habe aber den Fehler bekommen:
No such file or directory "./old/*.TIF"
Was mache ich falsch?
Antwort1
Verwenden Sie hierfür findfind . -name "*.TIF" -exec cp {} new \;
Wird find
verwendet, um Dateien zu finden. Der Befehl sagt „ find
Dateien beginnend hier .
, wobei der Name der Datei -name
mit endet. .tif
Denken Sie an die Anführungszeichen für die Shell-Erweiterung.“ So tif
ist es ganz einfach, alle Dateien zu finden.
find . -name "*.tif"
./2/3/3.tif
./2/2.tif
./1.tif
Wir verwenden dann -exec
etwas mit Dateien zu tun in diesem Fall cp
gefundene Dateien {}
in das Zielverzeichnis, new
gefolgt von einem Escape-Semikolon\;
Antwort2
Es sollte so aussehen. Sie müssen das alte Verzeichnis eingeben:
cd old
cp -R *.tif ../new
Antwort3
.tif
Möglicherweise sind in diesem Verzeichnis keine Dateien vorhanden old
.
Darüber hinaus können Sie eine Liste der Dateien abrufen und diese mit einem einfachen Skript kopieren:
find /old -type f | xargs grep *.tif
wird Ihnen die Liste geben.
Du kannst das:
for i in `find /old -type f | xargs grep *.tif`
do
cp $i /new
done;