681 Stimmen

Wie verwendet man den Befehl 'cp', um ein bestimmtes Verzeichnis auszuschließen?

Ich möchte alle Dateien in einem Verzeichnis mit Ausnahme einiger Dateien in einem bestimmten Unterverzeichnis kopieren. Ich habe festgestellt, dass cp Befehl hatte nicht die --exclude Option. Wie kann ich dies also erreichen?

24 Stimmen

11 Stimmen

tar -c | tar -x ?

2 Stimmen

@mvds, ich stimme Ihnen zu, tar mit '--exclude' zu verwenden ist eine gute Idee.

9voto

Vanwaril Punkte 7030

Ich nehme an, Sie verwenden Bash oder Dash. Würde das funktionieren?

shopt -s extglob  # sets extended pattern matching options in the bash shell
cp $(ls -laR !(subdir/file1|file2|subdir2/file3)) destination

Führen Sie ein ls aus, das die Dateien ausschließt, die Sie nicht haben wollen, und verwenden Sie diese als erstes Argument für cp

8voto

kungfooman Punkte 3915

Verschieben Sie es einfach vorübergehend in ein verstecktes Verzeichnis (und benennen Sie es danach um, falls gewünscht).

mkdir .hiddendir
cp * .hiddendir -R
mv .hiddendir realdirname

7voto

Panduka Punkte 316

rsync war für uns nicht verfügbar. Nachfolgend finden Sie eine Alternative, die funktioniert.

tar -cf - --exclude='./folder' --exclude='./file.tar' ./source_directory | tar -xf - -C ./destination_directory

6voto

ehudokai Punkte 1908

Eine andere, einfachere Möglichkeit ist die Installation und Verwendung von rsync mit der Option --exclude-dir, die sowohl für lokale als auch für entfernte Dateien verwendet werden kann.

5voto

Milan Simek Punkte 422

Dies ist eine Abwandlung der Antwort von Linus Kleen. Seine Antwort hat bei mir nicht funktioniert, weil dem Dateipfad ein . vorangestellt wurde, was cp nicht mag (der Pfad sähe dann aus wie Quelle/.Ziel/Datei).

Dieser Befehl hat bei mir funktioniert:

find . -type f -not -path '*/exlude-path/*' -exec cp --parents '{}' '/destination/' \;

Mit dem Befehl --parents bleibt die Verzeichnisstruktur erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X