免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5846 | 回复: 14

[FreeBSD] 只复制目录的命令如何写? [复制链接]

论坛徽章:
0
发表于 2013-12-12 09:48 |显示全部楼层
本帖最后由 iheaing 于 2013-12-12 15:35 编辑

设目录A下有许许多多子目录和文件,我只要复制A目录下的所以子目录,并保留它们的权限和所有者。这个怎么做?

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
发表于 2013-12-12 13:50 |显示全部楼层
man tar

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2013-12-12 14:53 |显示全部楼层
cp的话,貌似没法保留权限吧?

论坛徽章:
0
发表于 2013-12-12 15:35 |显示全部楼层
我是楼主,上面没写清楚,我是复制,不是备份。

论坛徽章:
0
发表于 2013-12-12 17:21 |显示全部楼层
本帖最后由 zeissoctopus 于 2013-12-12 17:48 编辑
iheaing 发表于 2013-12-12 09:48
设目录A下有许许多多子目录和文件,我只要复制A目录下的所以子目录,并保留它们的权限和所有者。这个怎么做 ...


  • 用 find 找出並過濾所有子目錄名稱
  • 用 cpio 複制相同權限子目錄到新的位置


我是使用 tcsh 詳細步驟如下:

1. 創建目的地目錄

2. 先移至 A 目錄
  1. % cd ~/A
复制代码
3. 用 find 工具找出並濾 A 目錄下各層的子目錄名稱
  1. % find . -type d -print
复制代码
4. 同時使用 find 和 cpio 工具複制相同權限子目錄到新的位置 NewDir 目錄
  1. % find . -type d -print | cpio -pmud ~/NewDir
复制代码
以下所有步驟順序呈顯

  1. % mkdir ~/NewDir
  2. % cd ~/A
  3. % find . -type d -print | cpio -pmud ~/NewDir
复制代码

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2013-12-12 20:20 |显示全部楼层
zeissoctopus 发表于 2013-12-12 17:21
  • 用 find 找出並過濾所有子目錄名稱
  • 用 cpio 複制相同權限子目錄到新的位置


  • 这么复杂,我感觉还不如tar呢,哈哈。

    论坛徽章:
    54
    2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
    发表于 2013-12-12 21:59 |显示全部楼层
    tar也不只能备份,tar 一边打包,另一边解包,这种比cp要快多了,并且文件多的时候要经cp稳定。

    论坛徽章:
    0
    发表于 2013-12-13 06:57 |显示全部楼层
    本帖最后由 zeissoctopus 于 2013-12-13 07:07 编辑
    fender0107401 发表于 2013-12-12 20:20
    这么复杂,我感觉还不如tar呢,哈哈。


    請看清楚的命題,樓主問,如何在夾雜目錄和文件的各層子目錄中,複制一個權限一樣的完整子目錄樹結構,但不包括複制各層子目錄中的文件案檔。

    請版主提供單純用 tar 的寫法

    (用谷歌查 tar directory structure 便找到答案,其原理也是要配合  find 工具做過濾工作)

    此外,如果簡純複制權限相同的某個子目錄及其內含文件的話,用 cp 便做到了。(注意要加 /* 到句尾)

    1. % cp -a ~/A/* ~/new_dir
    复制代码

    论坛徽章:
    89
    水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
    发表于 2013-12-13 08:11 |显示全部楼层
    zeissoctopus 发表于 2013-12-13 06:57
    請看清楚的命題,樓主問,如何在夾雜目錄和文件的各層子目錄中,複制一個權限一樣的完整子目錄樹結構, ...


    tar有exclude功能的。

    论坛徽章:
    0
    发表于 2013-12-13 14:34 |显示全部楼层
    fender0107401 发表于 2013-12-13 08:11
    tar有exclude功能的。


    tar 的 exclude 要寫 $SHELL match pattern 語法,那請教你如何涵蓋所有文件檔案的 pattern 寫法,這樣討論才有實用價值
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP