Verschieben Sie Dateien und Ordner rekursiv unter Linux
Prüfen:
ls -al ../public-back
drwxrwxr-x 4 apache apache 4096 Apr 19 03:32 templates
ls -al ../public-back/templates
drwxrwxr-x 2 apache apache 4096 Apr 19 03:33 content
drwxrwxr-x 2 apache apache 20480 Apr 20 06:14 images
drwxrwxr-x 2 apache apache 4096 Apr 19 03:35 video
ls -al /public
drwxrwxr-x 4 apache apache 4096 Apr 20 09:49 templates
ls -al /public/templates
drwxrwxr-x 2 apache apache 4096 Apr 20 09:50 content
drwxrwxr-x 2 apache apache 4096 Apr 20 09:50 images
drwxrwxr-x 2 apache apache 4096 Apr 20 09:50 video
Wie verschiebe ich den Inhalt von /public-back/templates
rekursiv mit Berechtigungen in /public/templates
?
7 answers
Wenn ich die Frage nicht falsch verstehe, würde dies funktionieren:
mv /public-back/templates/* /public/templates
Wenn Sie keine große Liste von Dateien haben, fragt das Hinzufügen von -i
, bevor es etwas überschreibt, was bei Verwendung von Platzhaltern wie *
Sicherheit bietet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-14 21:20:21
Die Manpage für cp besagt:
-p same as --preserve=mode,ownership,timestamps
-r same as --recursive=copy directories recursively
, Versuchen;
cp -rp /public-back/templates/* /public/templates/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-04-20 14:24:07
Beim Verschieben von Elementen von meinem USB-Stick auf mein OSMC-System habe ich Folgendes sehr nützlich gefunden:
find /media/Pi\ Hard\ 16GB/ -name '*' -exec mv -v {} /media/External\ HDD/Videos/ \;
Erklärung, wie es unten funktioniert.
Vergessen Sie übrigens nicht, einen Backslash vor Leerzeichen in den Quell-oder Zielverzeichnisnamen hinzuzufügen (siehe oben).find finds all files and folders in the destination path.
/media/Pi Hard 16GB/ is the path searched. Escape special char such as spaces.
-name '*' filters on names. If you do not escape or quote this then
the shell will expand it before find sees it.
-exec Executes a command, in our case mv
-v Verbose, so you can see what's happening (optional)
{} is replaced by the name of the found object.
Effektiv finden Sie alle Dateien und Ordner und verschieben sie nacheinander (oder wenn zuerst ein Verzeichnis gefunden wird, verschieben Sie dieses Verzeichnis und den Inhalt darin). Dies startet einen neuen Prozess für jede Bewegung und ist sehr ineffizient. Verwenden Sie dies nur, wenn die regulären Befehle fehlschlagen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-02-18 22:19:48
cp -a --link ../public-back/* /public/. && rm -rf ../public-back
Erstellen Sie also harte Links im Zielverzeichnis und entfernen Sie das Quellverzeichnis. 'mv' funktioniert in Ihrem Fall einfach nicht und funktioniert im Allgemeinen nur, wenn Quellverzeichnis und dest keine gemeinsamen Teilbäume haben.
Beachten Sie, dass ich davon ausgehe, dass das Wort "Verschieben" in der Frage bedeutet, dass das Quellverzeichnis nach der Operation verschwunden sein sollte.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-09-06 07:16:13
Mv scheint das nicht zu tun. Aber Sie können diesen kleinen Trick verwenden, funktioniert wie ein Zauber:
tar cf - . |(cd /targetdir; tar xvf -)
Und bewahrt Berechtigungen und alle.
Hinweis: Keines der oben genannten hat für mich funktioniert, deshalb ist diese Problemumgehung.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-20 15:24:37
Es ist möglich, sich mit rsync
zu bewegen, anstatt mit --remove-source-files
zu kopieren. Dadurch bleiben Eigenschaften wie Berechtigungen und geänderte Daten erhalten. Es hat den zusätzlichen Vorteil, zu überprüfen, ob Dateien nicht in das Zielverzeichnis verschoben werden müssen (dh ob dort bereits eine neuere Datei mit demselben Namen vorhanden ist).
rsync -arctuxz --remove-source-files /public-back/templates/* /public/templates/
Natürlich können Sie auch die Dateien kopieren und das Originalverzeichnis entfernen.
mkdir -p /public/templates
rsync -arctuxz --remove-source-files /public-back/templates/* /public/templates/
rm -rfi /public-back/templates/
Dies sind meine empfohlenen Parameter für rsync
aber es gibt andere Argumente für die Erhaltung verschiedener Eigenschaften oder Umgang mit Links und Komprimierung / Verschlüsselung von großen Dateien. Dieser Befehl unterstützt auch das Kopieren in entfernte Dateisysteme über SSH-Tunnel.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-28 02:56:46
Wie oben erwähnt, ist mv
auf demselben Dateisystem schneller als cp
. Im Folgenden werden beispielsweise Zeitstempel und Eigentümer beibehalten und Verzeichnisse und Dateien einschließlich versteckter Dateien und Verzeichnisse rekursiv verschoben.
Anfangsbedingungen:
- Hinweis der Besitz von
dir02/*
istroot:victoria
[victoria@victoria test]$ tree -La 5 -F
.
└── hourly.0/
├── .dir01/
├── dir01/
│ ├── .dir02/
│ ├── dir02/
│ │ ├── .dir03/
│ │ ├── dir03/
│ │ │ ├── .file03
│ │ │ └── file03
│ │ ├── .file02
│ │ └── file02
│ ├── .file01
│ └── file01
├── .file00
└── file00
7 directories, 8 files
[victoria@victoria test]$ ls -laR
.:
total 12
drwxr-xr-x 3 victoria victoria 4096 Apr 27 10:04 .
drwxrwxr-x 4 victoria victoria 4096 Apr 27 09:19 ..
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 hourly.0
./hourly.0:
total 16
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 .
drwxr-xr-x 3 victoria victoria 4096 Apr 27 10:04 ..
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .dir01
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 dir01
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 .file00
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 file00
./hourly.0/.dir01:
total 8
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
./hourly.0/dir01:
total 16
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .dir02
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 dir02
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 .file01
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 file01
./hourly.0/dir01/.dir02:
total 8
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
./hourly.0/dir01/dir02:
total 16
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
drwxr-xr-x 2 root victoria 4096 Apr 27 09:44 .dir03
drwxr-xr-x 2 root victoria 4096 Apr 27 09:45 dir03
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 .file02
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 file02
./hourly.0/dir01/dir02/.dir03:
total 8
drwxr-xr-x 2 root victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 ..
./hourly.0/dir01/dir02/dir03:
total 8
drwxr-xr-x 2 root victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 ..
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 .file03
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 file03
Verschieben Sie diese Dateien, Verzeichnisse:
Dies scheint zu erhalten:
- Zeitstempel
- verschiebt Dateien rekursiv, Verzeichnisse (einschließlich versteckter Dateien, Verzeichnisse)
- bewahrt Besitztümer
[victoria@victoria test]$ mv hourly.0/ hourly.1
Nach dem Umzug:
[victoria@victoria test]$ tree -La 5 -F
.
└── hourly.1/
├── .dir01/
├── dir01/
│ ├── .dir02/
│ ├── dir02/
│ │ ├── .dir03/
│ │ ├── dir03/
│ │ │ ├── .file03
│ │ │ └── file03
│ │ ├── .file02
│ │ └── file02
│ ├── .file01
│ └── file01
├── .file00
└── file00
7 directories, 8 files
[victoria@victoria test]$ ls -laR
.:
total 12
drwxr-xr-x 3 victoria victoria 4096 Apr 27 10:05 .
drwxrwxr-x 4 victoria victoria 4096 Apr 27 09:19 ..
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 hourly.1
./hourly.1:
total 16
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 .
drwxr-xr-x 3 victoria victoria 4096 Apr 27 10:05 ..
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .dir01
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 dir01
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 .file00
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 file00
./hourly.1/.dir01:
total 8
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
./hourly.1/dir01:
total 16
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .dir02
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 dir02
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 .file01
-rw-r--r-- 1 victoria victoria 0 Apr 27 09:17 file01
./hourly.1/dir01/.dir02:
total 8
drwxr-xr-x 2 victoria victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
./hourly.1/dir01/dir02:
total 16
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 victoria victoria 4096 Apr 27 09:45 ..
drwxr-xr-x 2 root victoria 4096 Apr 27 09:44 .dir03
drwxr-xr-x 2 root victoria 4096 Apr 27 09:45 dir03
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 .file02
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 file02
./hourly.1/dir01/dir02/.dir03:
total 8
drwxr-xr-x 2 root victoria 4096 Apr 27 09:44 .
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 ..
./hourly.1/dir01/dir02/dir03:
total 8
drwxr-xr-x 2 root victoria 4096 Apr 27 09:45 .
drwxr-xr-x 4 root victoria 4096 Apr 27 09:45 ..
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 .file03
-rw-r--r-- 1 root victoria 0 Apr 27 09:17 file03
[victoria@victoria test]$
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-04-27 17:34:12