Ich möchte cp aaa/deep/sea/blob.psd
zubbb/deep/sea/blob.psd
Wie mache ich die Kopie, wenn die Verzeichnisse deep
und sea
darunter nicht vorhanden sind, bbb
sodass die Kopie sowohl die benötigten Verzeichnisse erstellt als auch die Datei kopiert?
Im Moment werde ich
No such file or directory
so tief und Meer gibt es nicht.
Ich habe mir die Hilfeseiten und andere Fragen angesehen, aber es springt mir nichts heraus.
Das nächste, das ich habe, ist rcp
für das Verzeichnis:
rcp -r aaa/deep/sea/ bbb/deep/sea/
Dies kopiert jedoch das gesamte Verzeichnis und den gesamten Inhalt, und ich möchte nur die eine Datei. Der Versuch, das zu tun, gab jedochcp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
Antwort wird nur 1 Verzeichnis erstellen undpax
scheint nicht üblich zu sein.-d
anstelle von-D
auf einem Mac.755
(rwxr-xr-x
) -Berechtigungen erstellt, was wahrscheinlich nicht erwünscht ist. Sie können mit dem-m
Schalter etwas anderes angeben , aber ich konnte keine Möglichkeit finden , die Dateiberechtigungen einfachMit Standardbefehlen (POSIX / Unix) haben Sie:
quelle
info tar
- irgendwo in der Rubrik mit den Portabilitätsbedenken - werden Sie feststellen, dass GNUtar
behauptet, vollständigpax
kompatibel zu sein. Ich habe es trotzdem getan, obwohl ich noch nie dazu gekommen bin, diese Behauptungen auf die Probe zu stellen.Mir ist keine Möglichkeit bekannt, dies zu tun
cp
, aber es ist sicherlich möglich, Folgendes zu verwendenrsync
:wo
dir
ist ein Verzeichnis, das nicht existieren muss. Es gibt viele andere Möglichkeiten, mit anderen Befehlen dasselbe zu erreichen.quelle
rsync -R
das Verzeichnisrsync
erfordert mehr Optionen, aber die Frage war einfach, ein nicht existierendes Zielverzeichnis zu erstellen, daher meine kurze Antwort :)cp
hat die--parents
Option.Wenn dies nicht
pax
der Fall ist (es wird von POSIX als Standardersatz für cpio und tar vorgeschrieben, die zu viele Inkompatibilitäten aufwiesen, um sie zu standardisieren), verwenden Siecpio -p
odertar -cf - … | tar -xf -
stattdessen.quelle