Frage Wie kopiert man mit cp versteckte Dateien und versteckte Verzeichnisse und deren Inhalt?
Wie kann ich machen cp -r
Kopieren absolut alles der Dateien und Verzeichnisse in einem Verzeichnis
Bedarf:
- Verstecken Sie versteckte Dateien und versteckte Verzeichnisse.
- Sei ein einzelner Befehl mit einem Flag, um das oben genannte zu enthalten.
- Sie müssen sich nicht auf den Mustervergleich verlassen.
Mein hässlicher, aber funktionierender Hack ist:
cp -r /etc/skel/* /home/user
cp -r /etc/skel/.[^.]* /home/user
Wie kann ich das alles in einem Befehl ohne Mustervergleich tun?
Welche Flagge muss ich verwenden?
294
2017-10-27 19:46
Ursprung
Antworten:
Geben Sie die Dateien nicht an:
cp -r /etc/skel /home/user
(Beachten Sie, dass /home/user
muss nicht schon existieren, sonst wird es erstellt /home/user/skel
.)
214
2017-10-27 19:55
Nehmen wir an, Sie haben den neuen Ordner erstellt (oder erstellen ihn) und möchten die Dateien dorthin kopieren, nachdem der Ordner erstellt wurde
mkdir /home/<new_user>
cp -r /etc/skel/. /home/<new_user>
Dies kopiert alle Dateien / Ordner rekursiv von /etc/skel
in den bereits vorhandenen Ordner, der in der ersten Zeile erstellt wurde.
378
2017-12-12 22:00
bash
selbst hat eine gute Lösung, es hat eine shell option
, Sie können cp
, mv
und so weiter.:
shopt -s dotglob # for considering dot files (turn on dot files)
und
shopt -u dotglob # for don't considering dot files (turn off dot files)
Die obige Lösung ist Standard von bash
HINWEIS:
shopt # without argument show status of all shell options
-u # abbrivation of unset
-s # abbrivation of set
59
2018-02-06 01:14
Das richtige Mittel dafür ist die Verwendung der -T (--no-target-directory)
Option und rekursiv die Ordner kopieren (ohne Schrägstriche, Sternchen, etc.), d.
cp -rT /etc/skel /home/user
Dies kopiert den Inhalt von /etc/skel
zu /home/user
(einschließlich versteckter Dateien), Erstellen des Ordners /home/user
wenn es nicht existiert; aber die -T
Option verhindert den Inhalt von /etc/skel
aus dem Kopieren in einen neuen Ordner /home/user/skel
sollte der Ordner sein /home/user
existieren.
45
2017-09-08 21:50
Verwenden Sie rsync:
rsync -rtv source_folder/ destination_folder/
23
2018-02-20 13:18
Wenn Quell- und Zielverzeichnis den gleichen Namen haben, können Sie, selbst wenn das Zielverzeichnis vorhanden ist, einfach Folgendes eingeben:
cp -R /etc/skel /home/
Dadurch wird das Verzeichnis / etc / skel in / home / kopiert, einschließlich versteckter Dateien und Verzeichnisse.
Schließlich können Sie das Verzeichnis kopieren und in einer einzigen Zeile umbenennen:
cp -R /etc/skel /home/ && mv /home/skel /home/user
3
2018-05-16 08:38
rsync
ist gut, aber eine andere Wahl:
cp -a src/ dst/
Von der Haupthilfe:
-a, --archive
same as -dR --preserve=all
-d same as --no-dereference --preserve=links
-R, -r, --recursive
copy directories recursively
2
2017-08-28 17:46