Wie kopiere ich rekursiv gerne cp -rf *
, aber ohne versteckte Verzeichnisse (Verzeichnisse beginnend mit.) Und deren Inhalt?
quelle
Wie kopiere ich rekursiv gerne cp -rf *
, aber ohne versteckte Verzeichnisse (Verzeichnisse beginnend mit.) Und deren Inhalt?
Man könnte einfach alles mit kopieren
cp -rf
und löschen Sie dann versteckte Verzeichnisse am Ziel mit
find -type d -name '.*' -and -not -name '.' -print0 | xargs -0 rm -rf
Wenn Sie einen fortgeschrittenen Teer haben (z. B. GNU-Teer), können Sie auch versuchen, einige Muster mit tar auszuschließen. Ich fürchte aber, dass es nicht möglich ist, versteckte Verzeichnisse nur auszuschließen, sondern versteckte Dateien einzuschließen.
Zum Beispiel so etwas:
tar --exclude=PATTERN -f - -c * | tar -C destination -f - -x
Übrigens hat GNU Tar einen Zoo von Exclude-Style-Optionen. Mein Favorit ist
--exclude-vcs
Gute Optionen zum Kopieren eines Verzeichnisbaums mit Ausnahme einiger Dateien sind:
rsync : Dies ist im Grunde genommen CP plus eine Tonne von Ausschlussmöglichkeiten.
rsync -a --exclude='.*' /source/ /destination
pax : Es hat einige Ausschlussfunktionen und es ist in POSIX enthalten, sollte also überall verfügbar sein (mit der Ausnahme, dass einige Linux-Distributionen es aus irgendeinem Grund nicht in ihre Standardinstallation aufnehmen).
cd /source && mkdir -p /destination && \
pax -rw -pp -s '!.*/\..*!!' . /destination
alternativ dazu cp
könntest du rsync
mit einem --exclude=PATTERN
.