GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Suchen und kopieren Sie Dateien

Sie müssen cp -t /home/shantanu/tosend verwenden um ihm mitzuteilen, dass das Argument das Zielverzeichnis und keine Quelle ist. Sie können es dann in -exec ... + ändern um cp zu erhalten um so viele Dateien wie möglich auf einmal zu kopieren.


Wenn Sie die gefundenen Dateien in /home/shantanu/tosend kopieren möchten , haben Sie die Reihenfolge der Argumente bis cp umgekehrt:

find /home/shantanu/processed/ -name '*2011*.xml' -exec cp "{}" /home/shantanu/tosend  \;

Bitte beachten:die find Befehl verwenden Sie {} als Platzhalter für passende Datei.


Ich stand vor einem Problem wie diesem ...

Tatsächlich können Sie find auf zwei Arten verarbeiten Befehlsausgabe in copy Befehl

  1. Wenn find Die Ausgabe des Befehls enthält kein Leerzeichen, dh wenn der Dateiname kein Leerzeichen enthält, können Sie den folgenden Befehl verwenden:

    Syntax:find <Path> <Conditions> | xargs cp -t <copy file path>

    Beispiel:find -mtime -1 -type f | xargs cp -t inner/

  2. Aber die meiste Zeit enthalten unsere Produktionsdatendateien möglicherweise Platz. Daher ist der unten erwähnte Befehl meistens sicherer:

    Syntax:find <path> <condition> -exec cp '{}' <copy path> \;

    Beispiel find -mtime -1 -type f -exec cp '{}' inner/ \;

Im zweiten Beispiel wird der letzte Teil, d. h. Semikolon, auch als Teil von find betrachtet Befehl, der maskiert werden sollte, bevor die Eingabetaste gedrückt wird. Andernfalls erhalten Sie eine Fehlermeldung wie diese

find: missing argument to `-exec'

In Ihrem Fall ist die Syntax des Kopierbefehls falsch um find file in /home/shantanu/tosend zu kopieren . Der folgende Befehl funktioniert:

find /home/shantanu/processed/ -name '*2011*.xml' -exec cp  {} /home/shantanu/tosend \;

Linux
  1. So finden Sie MySQL-, PHP- und Apache-Konfigurationsdateien

  2. Suchen und kopieren Sie die Datei mit Bash

  3. Dateien finden und taren (mit Leerzeichen)

  4. Ausführbare Dateien mit ls und grep finden

  5. Wie finde ich Dateien und summiere ihre Größe?

So kopieren Sie Dateien und Verzeichnisse unter Linux

Find-Befehl in Linux (Dateien und Verzeichnisse suchen)

Finden Sie große Dateien in Linux

So kopieren Sie Dateien und Verzeichnisse unter Linux

3 Möglichkeiten, Dateien und Verzeichnisse in Linux zu finden

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach