当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 15 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-13 21:10 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
将 $SDIR 中的所有文件,包括隐藏文件,包括 .a 之类文件名只有两字符的隐藏文件,复制到早已存在的 $DDIR 中。
cp -R $SDIR $DDIR 是不行的,因为 $SDIR 的副本成了 $DDIR 的子目录。
研究实验了一番,最后搞出一条如此大动作的命令,有没有更简单的方法?
代码:
find $SDIR -mindepth 1 -maxdepth 1 -exec cp -R {} $DDIR \;

天啦!还一定要加 -mindepth 1 -maxdepth 1限制,否则还会有问题 :em20


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


最后由 自由建客 编辑于 2011-05-20 20:16,总共编辑了 4 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-13 21:15 

注册: 2008-01-09 22:41
帖子: 18311
送出感谢: 0 次
接收感谢: 6
rsync过去,要不就mv过去呗


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-13 21:18 
头像

注册: 2008-12-09 12:44
帖子: 3864
地址: 北京
送出感谢: 0 次
接收感谢: 2
代码:
cp -r $SDIR/* $DDIR

这个不行吗?


_________________
Pity is the bomp!
活着就是折腾!生命不息,折腾不止!
看这帮家伙在干什么?@pityonline/u
Dropbox+Vps+PC 跑起来了!这是邀请链接


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-13 21:26 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
rsync 可能没安装,写在脚本里不通用。
代码:
cp -r $SDIR/* $DDIR
不行,$SDIR 下的隐藏文件会飘过。用 .* 会严重错误,因为父目录会被匹配进去。用.??* 绕过匹配父目录,但 .a .b .c 之类就两个字符的文件将再度飘过。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-13 22:49 
头像

注册: 2008-12-09 12:44
帖子: 3864
地址: 北京
送出感谢: 0 次
接收感谢: 2
自由建客 写道:
rsync 可能没安装,写在脚本里不通用。
代码:
cp -r $SDIR/* $DDIR
不行,$SDIR 下的隐藏文件会飘过。用 .* 会严重错误,因为父目录会被匹配进去。用.??* 绕过匹配父目录,但 .a .b .c 之类就两个字符的文件将再度飘过。

果然是这样,可以图形界面操作吗?在这个问题上应该比命令行容易些……


_________________
Pity is the bomp!
活着就是折腾!生命不息,折腾不止!
看这帮家伙在干什么?@pityonline/u
Dropbox+Vps+PC 跑起来了!这是邀请链接


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 8:50 
头像

注册: 2007-03-02 17:36
帖子: 7277
送出感谢: 3
接收感谢: 99
cp -a $SDIR/* $DDIR


_________________
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 9:13 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
没见这样较劲的。
find本来就要限制深度,谁叫你要复制到子目录。

换个目录多好。折腾啥。再移动回来,瞬间的事情而已。

脑袋短路了。


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 9:51 

注册: 2008-05-03 23:42
帖子: 3681
送出感谢: 4
接收感谢: 6
懒蜗牛Gentoo 写道:
cp -a $SDIR/* $DDIR


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 10:04 
头像

注册: 2010-04-10 16:14
帖子: 2902
系统: Arch Linux
送出感谢: 8
接收感谢: 69
记得bsd有个cpdup..


_________________
dz,U,EIS. cies.
dz-cies@github
小香猪杀手@cc98.org


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 18:07 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
懒蜗牛Gentoo 写道:
cp -a $SDIR/* $DDIR

代码:
>0< urd$ SDIR=/etc/skel

>0< urd$ DDIR=test

>0< urd$ ls -A $SDIR
.bash_logout  .bashrc  .profile

>0< urd$ mkdir $DDIR

>0< urd$ cp -a $SDIR/* $DDIR
cp: 无法获取"/etc/skel/*" 的文件状态(stat): 没有那个文件或目录

>1< urd$


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-14 18:10 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
eexpress 写道:
没见这样较劲的。
find本来就要限制深度,谁叫你要复制到子目录。

换个目录多好。折腾啥。再移动回来,瞬间的事情而已。

脑袋短路了。

要是复制 /etc/skel 下的文件到新用户主目录你怎么搞?
/usr/sbin/adduser 中的方法写得太复杂了,没看懂。

貌似牵涉到群文件操作的都离不开 find 比如
代码:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

就连 /etc/init.d/sudo 中都是这么一句
代码:
find /var/lib/sudo -exec touch -t 198501010000 '{}' \;


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2010-10-19 21:11 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
进一步研究结果
代码:
# sh/bash
cp -r $SDIR/{.[!.]*,*} $DDIR

# csh/tcsh
cp -r $SDIR/{.[^.]*,*} $DDIR

-----------------------------
其实这个还是不可靠


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2011-12-13 22:59 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
竟然没一个人能答上这个问题! :em20 :em36
今天终于知道答案了,没想到竟然是 FreeBSD 论坛上的朋友说的! :em39
不说答案先,再给大家一个机会,谁能化简这条命令
代码:
find $SDIR -mindepth 1 -maxdepth 1 -exec cp -R {} $DDIR \;


另外,九楼,我五年前就知道 bsd 用
代码:
cp -r $SDIR/ $DDIR


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2011-12-13 23:33 
头像

注册: 2010-06-16 1:05
帖子: 14668
地址: Tencent
系统: Mac OS X
送出感谢: 1
接收感谢: 153
我在想把 $SDIR的名字改成 $DDIR,然后cp到$DDIR父目录下去会怎么样


_________________
twitter求fo:http://twitter.com/maplebeats
博客求踩:http://maplebeats.com


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 汗,复制个文件要搞这么大动静
帖子发表于 : 2011-12-31 15:57 
头像

注册: 2008-07-30 23:21
帖子: 13424
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 126
代码:
cp -r $SDIR/. $DDIR

Linux 的 cp 用那一点代表所有,很难想到。因为没有 FreeBSD 的 cp 直观。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 15 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译