QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3820|回复: 17

谁有办法简化这行命令

[复制链接]
发表于 2003-4-8 19:10:12 | 显示全部楼层 |阅读模式
cd a;find . -name '*.txt' | tar cvf - -T - | (cd ../b; tar xf -)

即将a目录下的*.txt到b目录(保持原来a的目录结构)
当然,最好是不用tar来tar去了
cp命令好像不照了
 楼主| 发表于 2003-4-8 19:11:19 | 显示全部楼层
注:包括a子目录的*.txt
回复

使用道具 举报

发表于 2003-4-9 22:43:24 | 显示全部楼层
你好多错字,我看来看去不敢确定你的意思,请改一下,,

我看,建立一个文件auto,内容类似:
#/bin/bush/
cd /usr/a
find.....

......

把你想用的命令按以上格式写好,保存。
然后chmod +x auto
然后再执行,大概是这样,
反正意思跟DOS下的批处理文件差不多。。。不尽之处,请多包涵。
回复

使用道具 举报

 楼主| 发表于 2003-4-9 23:10:42 | 显示全部楼层
[quote:79ac216de8="双喜"]你好多错字,我看来看去不敢确定你的意思,请改一下,,

我看,建立一个文件auto,内容类似:
#/bin/bush/
cd /usr/a
find.....

......

把你想用的命令按以上格式写好,保存。
然后chmod +x auto
然后再执行,大概是这样,
反正意思跟DOS下的批处理文件差不多。。。不尽之处,请多包涵。[/quote]

sorry,我的意思是写个命令,相当于dos下的
copy a\*.txt b\. -s
我写的命令(转自中国科大BBS)确实达到了这个目的,利用了tar的技巧,但费解压缩的时间

BTW:命令行可能可读性不好,但肯定没有错,我试过的
回复

使用道具 举报

发表于 2003-4-10 11:07:58 | 显示全部楼层
你先说说你写这个脚本的目的就行了,我看看试着谢谢,如何?:)
回复

使用道具 举报

 楼主| 发表于 2003-4-10 19:41:06 | 显示全部楼层
我直接说吧,有一台服务器上有很多电影,目录分类很详细的说,我只想拷其中的电影介绍(*.txt)
Dos下的copy a\*.txt b\. /s可以达到这个目的
但linux的cp似乎没有这个功能
楼上那个命令行是科大一位网友想出来的,目的达到了,但效率......呵呵

谢谢版主关照 ^___^
回复

使用道具 举报

发表于 2003-4-10 21:14:04 | 显示全部楼层
#!/bin/sh
find ./ -name "*.txt" -print>1.sh
while read line
do
cp -fr $line ~/b
done <1.sh
rm -fr 1.sh
用这个脚本试一下如何?
我记得还有个命令,更快速的,待我想想啊!
回复

使用道具 举报

 楼主| 发表于 2003-4-10 21:35:39 | 显示全部楼层
[quote:d6013f05c6="bixuan"]#!/bin/sh
find ./ -name "*.txt" -print>1.sh
while read line
do
cp -fr $line ~/b
done <1.sh
rm -fr 1.sh
用这个脚本试一下如何?
我记得还有个命令,更快速的,待我想想啊![/quote]

刚诗了一把,没有保持目录结构,*.txt全都跑道b目录下了
:-(
主要是cp那个 -r 参数好像只对目录对象有效!
回复

使用道具 举报

发表于 2003-4-10 21:44:26 | 显示全部楼层
本身就是把*.txt文件copy到b目录啊
回复

使用道具 举报

 楼主| 发表于 2003-4-10 22:04:38 | 显示全部楼层
[quote:066e899c5d="bixuan"]本身就是把*.txt文件copy到b目录啊[/quote]

哦,对不起,我没把问题说明白
比如
a/dir1/1.txt
我希望它拷到b/dir1/1.txt,而不是b/1.txt
抱歉,让您误会了!
回复

使用道具 举报

发表于 2003-4-11 10:44:17 | 显示全部楼层
再问一下:是不是每个目录只有一个*.txt文件,如果是的话,那就比较简单点。
回复

使用道具 举报

 楼主| 发表于 2003-4-11 10:52:55 | 显示全部楼层
[quote:eccc5892ac="bixuan"]再问一下:是不是每个目录只有一个*.txt文件,如果是的话,那就比较简单点。[/quote]

我也不肯定,如果这样的话呢
回复

使用道具 举报

发表于 2003-4-11 13:31:40 | 显示全部楼层
最后一个问题,这个目录结构是怎么样的?能举个例子吗?
回复

使用道具 举报

 楼主| 发表于 2003-4-11 14:48:06 | 显示全部楼层
e.g.
a下有b1,b2,b3,b4目录
b1下有b11,b12,b13
*.txt在b11,b12,b13目录,好像每个目录是只有一个.txt(当然如果支持多个更好)和其它的*.avi,*.sub,*.srt
b2,b3,b4依此类推

目标b目录原来是空

操作后期望b目录只保留*.txt当然目录结构还是跟a一样
有b11,b12,b13
*.txt在b11,b12,b13目录,每个目录只有.txt
b2,b3,b4依此类推

我想linux应该有这样的命令的吧
如果是要写大段shell的苦力活,我想就不用麻烦版主了

tea you!
回复

使用道具 举报

发表于 2003-4-11 14:56:47 | 显示全部楼层
这个我想肯定要写SHELL的,我帮你写写,写好我就贴上来。:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-25 16:49 , Processed in 0.072097 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表