Linux

複製包含連結的文件夾內容的正確方法是什麼

  • October 24, 2018

我們在 /usr/hdp/2.6.0.3-8/zookeeper 文件夾下有以下文件夾/連結/文件

-rw-r--r--. 1 root root 794542 Apr  1  2017 zookeeper-3.4.6.2.6.0.3-8.jar
drwxr-xr-x. 6 root root   4096 Mar 28  2018 doc
drwxr-xr-x. 3 root root     17 Mar 28  2018 etc
drwxr-xr-x. 2 root root   4096 Mar 28  2018 lib
drwxr-xr-x. 3 root root     17 Mar 28  2018 man
lrwxrwxrwx. 1 root root     29 Mar 28  2018 zookeeper.jar -> zookeeper-3.4.6.2.6.0.3-8.jar
lrwxrwxrwx. 1 root root     26 Mar 28  2018 conf -> /etc/zookeeper/2.6.0.3-8/0
drwxr-xr-x. 2 root root   4096 Oct 16 17:07 bin
[root@master01 zookeeper]# pwd
/usr/hdp/2.6.0.3-8/zookeeper

我們想將 /usr/hdp/2.6.0.3-8/zookeeper 下的所有內容複製到其他機器 - 比如說 - master02 機器

將 /usr/hdp/2.6.0.3-8/zookeeper 下的內容從目前機器複製到目標機器的正確命令是什麼(保存所有連結和權限)

您可能正在尋找常用-a的選項rsync

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

這將提供您需要的東西:

    -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -p, --perms                 preserve permissions
    -t, --times                 preserve modification times
    -g, --group                 preserve group
    -o, --owner                 preserve owner (super-user only)
    -D                          same as --devices --specials
        --devices               preserve device files (super-user only)
        --specials              preserve special files

添加-v詳細程度選項,您將獲得:

rsync -av /usr/hdp/2.6.0.3-8/zookeeper/ master02:/usr/hdp/2.6.0.3-8/zookeeper

您可能需要添加-delete清理目標目錄的選項:

        --delete                delete extraneous files from dest dirs

引用自:https://unix.stackexchange.com/questions/477000