Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeichnisse kopieren
Hi,
ich möchte gern ein verzeichnis "db" nach "db_test" kopieren soweit kein problem , beim zweiten mal besteht aber das verzeichnis "db_test" schon und mein ursprungs-verzeichnis wird in des verzeichnis "db_test" kopiert.
gibts hier irgendeinen option den man dem copy befehl mitgeben muss damit er dies nicht macht?
Gruß
Buffy
Wenn Du uns jetzt noch den exakten Befehl welchen Du verwendet hast verraten kannst ist dies sicher kein Problem.
wenn Du cp verwenden willst musst Du entweder die Inhalte von db nach db_test kopieren oder halt vorher db_test löschen. Wenn Du auf ein anderes Basis-VZ ausweichen kannst evtl. auch mit --parents oder --target-directory arbeiten...
Alternativ z.B. mit rsync kopieren.
cp -r db/ db_test
ohne es geprüft zu haben, probier mal
cp -r db/* db_test
geht, würde aber keine versteckten Dateien kopieren - und er müsste vor dem ersten kopieren das Zielverzeichnis erstellen.
geht, würde aber keine versteckten Dateien kopieren - und er müsste vor dem ersten kopieren das Zielverzeichnis erstellen.
Habe gerade nochmals geschaut. Zumindest mit "cp -a" - so mache ich im Moment meine Backups - werden die versteckten Dateien mit kopiert. Das Ziel erstelle ich jeweils vorher.
Nein, der "Glob" "*" "matcht" nicht auf Dateien mit "." am Anfang! (Er wird von der Shell und nicht von cp interpretiert und aufgelöst.)
Mit "cp -r db/* db/.* db_test" werden auch versteckte, direkte Nachfahren von db (mit "." vorn) kopiert.
Die ganze Sache mit den Globs hat aber einen dicken Haken: Sind auf der ersten Ebene (die, auf die das "*" passt), zu viele Dateien/Verzeichnisse oder ist die Gesamtlänge ihrer Namen zu lang, dann gibt es einen Fehler, weil es Maximalbegrenzungen für Parameterlisten von Befehlen gibt. (Bevor die Parameter an cp gegeben werden, wird z.B. aus "db/*" -> "db/datei1 db/datei2 db/datei3 ...". (Kann man z.B. leicht mit "echo *" testen.))
Nein, der "Glob" "*" "matcht" nicht auf Dateien mit "." am Anfang!
Interessante Aussage. Klingt auch soweit einleuchtend. Allerdings funktioniert es in der Praxis tatsächlich, hab nämlich als ich das schrieb gerade auf diese Art ein kleines Backup von "~" gemacht wobei auch die Dateien und Ordner mit "." kopiert worden sind. Wie gesagt zumindest mit "cp -a" gehts.
Dann hast Du kein "*" benutzt oder Du benutzt eine spezielle oder speziell konfigurierte Shell, die mit "*" auch ".*" match-t, was aber gewöhnlich nicht der Fall ist (z.B. bash voreingestellt auf Debian, CentOS und Gentoo). Vielleicht hat das etwas mit "match-hidden-files" in der /etc/inputrc (readline), der "dotglob"-Einstellung oder der Umgebungsvariable GLOBIGNORE zu tun, aber ich bin mir da nicht sicher.
[...]When a pattern is used for pathname expansion, the character ``.'' at the start
of a name or immediately following a slash must be matched explicitly, unless the shell option dotglob is set. When matching a pathname, the slash character must always be matched explic-
itly. In other cases, the ``.'' character is not treated specially. See the description of shopt below under SHELL BUILTIN COMMANDS for a description of the nocaseglob, nullglob, fail-
glob, and dotglob shell options.
The GLOBIGNORE shell variable may be used to restrict the set of file names matching a pattern. If GLOBIGNORE is set, each matching file name that also matches one of the patterns in GLO-
BIGNORE is removed from the list of matches. The file names ``.'' and ``..'' are always ignored when GLOBIGNORE is set and not null. However, setting GLOBIGNORE to a non-null value has
the effect of enabling the dotglob shell option, so all other file names beginning with a ``.'' will match. To get the old behavior of ignoring file names beginning with a ``.'', make
``.*'' one of the patterns in GLOBIGNORE. The dotglob option is disabled when GLOBIGNORE is unset.
Readline has variables that can be used to further customize its behavior. A variable may be set in the inputrc file with a statement of the form
set variable-name value
[...]
match-hidden-files (On)
This variable, when set to On, causes readline to match files whose names begin with a `.' (hidden files) when performing filename completion, unless the leading `.' is supplied by
the user in the filename to be completed.
Interessante Aussage. Klingt auch soweit einleuchtend. Allerdings funktioniert es in der Praxis tatsächlich, hab nämlich als ich das schrieb gerade auf diese Art ein kleines Backup von "~" gemacht wobei auch die Dateien und Ordner mit "." kopiert worden sind. Wie gesagt zumindest mit "cp -a" gehts.
poste doch mal den exakten Befehl, den Du verwendet hast...
poste doch mal den exakten Befehl, den Du verwendet hast...
Das war konkret mit "Parted Magic" als root ein
cp -a /media/sda7/wene/* /media/sdb1/20100901/backup-home
während /dev/sda7 sonst als /home gemountet ist.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.