rsync: copy symlink realpaths vs. re-create symlinks
I have this command now:
rsync --copy-links -r src dest
this will copy the target files of any symlinks in src and write out copies of those files in dest.
My question is - is there a way to re-create the symlinks with simply a new target (dest)?
I tried
rsync --links -r src dest
but that didn't seem to do anything.
Say my src dir looks like:
src/
foo/
bar/ # symlinked dir
baz/
rsync
add a comment |
I have this command now:
rsync --copy-links -r src dest
this will copy the target files of any symlinks in src and write out copies of those files in dest.
My question is - is there a way to re-create the symlinks with simply a new target (dest)?
I tried
rsync --links -r src dest
but that didn't seem to do anything.
Say my src dir looks like:
src/
foo/
bar/ # symlinked dir
baz/
rsync
supposedly--links
should work tho: linux.die.net/man/1/rsync
– Alexander Mills
Dec 18 at 7:02
I also tried--copy-dirlinks
this also copied bar instead of copying the symlink
– Alexander Mills
Dec 18 at 7:13
I can not reproduce this.rsync -r --links src dest
copies the links.
– Kusalananda
Dec 18 at 7:30
add a comment |
I have this command now:
rsync --copy-links -r src dest
this will copy the target files of any symlinks in src and write out copies of those files in dest.
My question is - is there a way to re-create the symlinks with simply a new target (dest)?
I tried
rsync --links -r src dest
but that didn't seem to do anything.
Say my src dir looks like:
src/
foo/
bar/ # symlinked dir
baz/
rsync
I have this command now:
rsync --copy-links -r src dest
this will copy the target files of any symlinks in src and write out copies of those files in dest.
My question is - is there a way to re-create the symlinks with simply a new target (dest)?
I tried
rsync --links -r src dest
but that didn't seem to do anything.
Say my src dir looks like:
src/
foo/
bar/ # symlinked dir
baz/
rsync
rsync
asked Dec 18 at 7:01
Alexander Mills
2,15911442
2,15911442
supposedly--links
should work tho: linux.die.net/man/1/rsync
– Alexander Mills
Dec 18 at 7:02
I also tried--copy-dirlinks
this also copied bar instead of copying the symlink
– Alexander Mills
Dec 18 at 7:13
I can not reproduce this.rsync -r --links src dest
copies the links.
– Kusalananda
Dec 18 at 7:30
add a comment |
supposedly--links
should work tho: linux.die.net/man/1/rsync
– Alexander Mills
Dec 18 at 7:02
I also tried--copy-dirlinks
this also copied bar instead of copying the symlink
– Alexander Mills
Dec 18 at 7:13
I can not reproduce this.rsync -r --links src dest
copies the links.
– Kusalananda
Dec 18 at 7:30
supposedly
--links
should work tho: linux.die.net/man/1/rsync– Alexander Mills
Dec 18 at 7:02
supposedly
--links
should work tho: linux.die.net/man/1/rsync– Alexander Mills
Dec 18 at 7:02
I also tried
--copy-dirlinks
this also copied bar instead of copying the symlink– Alexander Mills
Dec 18 at 7:13
I also tried
--copy-dirlinks
this also copied bar instead of copying the symlink– Alexander Mills
Dec 18 at 7:13
I can not reproduce this.
rsync -r --links src dest
copies the links.– Kusalananda
Dec 18 at 7:30
I can not reproduce this.
rsync -r --links src dest
copies the links.– Kusalananda
Dec 18 at 7:30
add a comment |
1 Answer
1
active
oldest
votes
--links
is correct. But if you have previously used --copy-links
, then it will have created real directories (with content) in the destination. A later run with --links
will not be able to remove those directories to replace them with links.
$ rsync -r --copy-links src/ dest/ # creates a real directory in /dest
$ ls -l dest
drwxr-xr-x 2 user staff 4096 Dec 18 00:47 bar
Now try to copy the links...
$ rsync -r --links src/ dest/
cannot delete non-empty directory: bar
could not make way for new symlink: bar
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Oops, not yet. Need to remove the destination directory first.
$ rm -rf dest/bar
$ rsync -r --links src/ dest/
$ ls -l dest
lrwxrwxrwx 1 user staff 6 Dec 18 00:52 bar -> ../bar
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f489625%2frsync-copy-symlink-realpaths-vs-re-create-symlinks%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
--links
is correct. But if you have previously used --copy-links
, then it will have created real directories (with content) in the destination. A later run with --links
will not be able to remove those directories to replace them with links.
$ rsync -r --copy-links src/ dest/ # creates a real directory in /dest
$ ls -l dest
drwxr-xr-x 2 user staff 4096 Dec 18 00:47 bar
Now try to copy the links...
$ rsync -r --links src/ dest/
cannot delete non-empty directory: bar
could not make way for new symlink: bar
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Oops, not yet. Need to remove the destination directory first.
$ rm -rf dest/bar
$ rsync -r --links src/ dest/
$ ls -l dest
lrwxrwxrwx 1 user staff 6 Dec 18 00:52 bar -> ../bar
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
add a comment |
--links
is correct. But if you have previously used --copy-links
, then it will have created real directories (with content) in the destination. A later run with --links
will not be able to remove those directories to replace them with links.
$ rsync -r --copy-links src/ dest/ # creates a real directory in /dest
$ ls -l dest
drwxr-xr-x 2 user staff 4096 Dec 18 00:47 bar
Now try to copy the links...
$ rsync -r --links src/ dest/
cannot delete non-empty directory: bar
could not make way for new symlink: bar
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Oops, not yet. Need to remove the destination directory first.
$ rm -rf dest/bar
$ rsync -r --links src/ dest/
$ ls -l dest
lrwxrwxrwx 1 user staff 6 Dec 18 00:52 bar -> ../bar
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
add a comment |
--links
is correct. But if you have previously used --copy-links
, then it will have created real directories (with content) in the destination. A later run with --links
will not be able to remove those directories to replace them with links.
$ rsync -r --copy-links src/ dest/ # creates a real directory in /dest
$ ls -l dest
drwxr-xr-x 2 user staff 4096 Dec 18 00:47 bar
Now try to copy the links...
$ rsync -r --links src/ dest/
cannot delete non-empty directory: bar
could not make way for new symlink: bar
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Oops, not yet. Need to remove the destination directory first.
$ rm -rf dest/bar
$ rsync -r --links src/ dest/
$ ls -l dest
lrwxrwxrwx 1 user staff 6 Dec 18 00:52 bar -> ../bar
--links
is correct. But if you have previously used --copy-links
, then it will have created real directories (with content) in the destination. A later run with --links
will not be able to remove those directories to replace them with links.
$ rsync -r --copy-links src/ dest/ # creates a real directory in /dest
$ ls -l dest
drwxr-xr-x 2 user staff 4096 Dec 18 00:47 bar
Now try to copy the links...
$ rsync -r --links src/ dest/
cannot delete non-empty directory: bar
could not make way for new symlink: bar
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
Oops, not yet. Need to remove the destination directory first.
$ rm -rf dest/bar
$ rsync -r --links src/ dest/
$ ls -l dest
lrwxrwxrwx 1 user staff 6 Dec 18 00:52 bar -> ../bar
answered Dec 18 at 8:55
BowlOfRed
2,465715
2,465715
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
add a comment |
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
hmmm thanks let me try it again, I didn't see the dir show up after the copy
– Alexander Mills
Dec 18 at 9:30
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f489625%2frsync-copy-symlink-realpaths-vs-re-create-symlinks%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
supposedly
--links
should work tho: linux.die.net/man/1/rsync– Alexander Mills
Dec 18 at 7:02
I also tried
--copy-dirlinks
this also copied bar instead of copying the symlink– Alexander Mills
Dec 18 at 7:13
I can not reproduce this.
rsync -r --links src dest
copies the links.– Kusalananda
Dec 18 at 7:30