把一个文件复制到多个文件夹里只需要直接在路径上添加不同目录即可。
举例:
在root目录下1.txt文件,复制到/home/abc /home/bcd /home/cde这三个目录中
命令如下如下:
cp /rooot/1.txt /home/abc /home/bcd /home/cde
简单说下linux下批量复制并重命名的另种方法。
for循环:
命令行打入(F为变量名,可任意)
for F in *.txt ; do cp $F
${F%.txt}_1.txt;done
其中${F%.txt}_1.txt的意思是把F中得.txt去掉后加上_1.txt
想要每步骤都显示出来,在cp后面加上-vf
如果这么写,就是批量改后缀,把txt改成ini后缀
for F in *.txt ; do mv $F ${F%.txt}.ini ;done
想要每步骤都显示出来,在mv后面加上-vf
扩展思维,一般排序都是首字符,所以想在文件名前面添加字符kk可以这么写
for F in *.txt ; do cp -vf $F (kk可为任意字符)kk$F ;done
linux下批量复制文件到多个文件夹
mkdir建以1,2,3,4,5个文件夹名
把所有ini后缀的文件拷贝到12345文件夹得集合F中,命令如下
for F in 1 2 3 4 5 ;do cp *.ini $F ;done
想要每步骤都显示出来,在cp后面加上-vf
for F in 1 2 3 4 5;do cp -vf *.ini $F ;done
注意事项,所有命令如果遇到重名,会把以前得文件替换掉,慎重!慎重!
批量复制文件并改成有顺序的文件名
写shell脚本
i=0
F=a
while [ $i -le 10 ]
do
cp -vf 00.ts $F$i.ts
let i+=1
done
其中00.ts为源文件,批量复制10个
⑵ linux鏂囦欢澶瑰嶅埗鍒板彟涓涓鏂囦欢linux鏂囦欢澶.澶嶅埗
linux鎬庝箞澶嶅埗鏂囦欢鍒板氫釜鏂囦欢澶逛笅锛
cp鍛戒护灏嗘枃浠跺嶅埗鍒扮洰褰曟枃浠跺す銆傚傛灉闇瑕佸嶅埗涓涓鏂囦欢鍒板氫釜鏂囦欢澶逛笅锛屽彲浠ヤ娇鐢ㄥ氭潯cp璇鍙ワ紝鎴栬呬娇鐢╯hell鑴氭湰銆傜敤娉曠ず渚嬶細澶嶅埗abc.txt鍒癮bcdef鐩褰曚笅$cpabc.txtab$cpabc.txtcd$cpabc.txtef鑴氭湰鏂瑰紡锛氬嶅埗abc.txt鍒癮bcdef鐩褰曚笅dirs=(abcdef)fordirin${dirs}docpabc.txt$(dir)donecp鍛戒护璇存槑cp鍛戒护鐢ㄦ潵灏嗕竴涓鎴栧氫釜婧愭枃浠舵垨鑰呯洰褰曞嶅埗鍒版寚瀹氱殑鐩鐨勬枃浠舵垨鐩褰曘
瀹冨彲浠ュ皢鍗曚釜婧愭枃浠跺嶅埗鎴愪竴涓鎸囧畾鏂囦欢鍚嶇殑鍏蜂綋鐨勬枃浠舵垨涓涓宸茬粡瀛樺湪鐨勭洰褰曚笅銆
cp鍛戒护杩樻敮鎸佸悓鏃跺嶅埗澶氫釜鏂囦欢锛屽綋涓娆″嶅埗澶氫釜鏂囦欢鏃讹紝鐩鏍囨枃浠跺弬鏁板繀椤绘槸涓涓宸茬粡瀛樺湪鐨勭洰褰曪紝鍚﹀垯灏嗗嚭鐜伴敊璇銆傝娉昪p(閫夐」)(鍙傛暟)閫夐」-a锛氭ゅ弬鏁扮殑鏁堟灉鍜屽悓鏃舵寚瀹-dpR鍙傛暟鐩稿悓锛
-d锛氬綋澶嶅埗绗﹀彿杩炴帴鏃讹紝鎶婄洰鏍囨枃浠舵垨鐩褰曚篃寤虹珛涓虹﹀彿杩炴帴锛屽苟鎸囧悜涓庢簮鏂囦欢鎴栫洰褰曡繛鎺ョ殑鍘熷嬫枃浠舵垨鐩褰曪紱
-f锛氬己琛屽嶅埗鏂囦欢鎴栫洰褰曪紝涓嶈虹洰鏍囨枃浠舵垨鐩褰曟槸鍚﹀凡瀛樺湪锛
-i锛氳嗙洊鏃㈡湁鏂囦欢涔嬪墠鍏堣㈤棶鐢ㄦ埛锛
-l锛氬规簮鏂囦欢寤虹珛纭杩炴帴锛岃岄潪澶嶅埗鏂囦欢锛
-p锛氫繚鐣欐簮鏂囦欢鎴栫洰褰曠殑灞炴э紱
-R/r锛氶掑綊澶勭悊锛屽皢鎸囧畾鐩褰曚笅鐨勬墍鏈夋枃浠朵笌瀛愮洰褰曚竴骞跺勭悊锛
-s锛氬规簮鏂囦欢寤虹珛绗﹀彿杩炴帴锛岃岄潪澶嶅埗鏂囦欢锛
-u锛氫娇鐢ㄨ繖椤瑰弬鏁板悗鍙浼氬湪婧愭枃浠剁殑鏇存敼鏃堕棿杈冪洰鏍囨枃浠舵洿鏂版椂鎴栨槸鍚嶇О鐩镐簰瀵瑰簲鐨勭洰鏍囨枃浠跺苟涓嶅瓨鍦ㄦ椂锛屾墠澶嶅埗鏂囦欢锛
-S锛氬湪澶囦唤鏂囦欢鏃讹紝鐢ㄦ寚瀹氱殑鍚庣紑鈥淪UFFIX鈥濅唬鏇挎枃浠剁殑榛樿ゅ悗缂锛
-b锛氳嗙洊宸插瓨鍦ㄧ殑鏂囦欢鐩鏍囧墠灏嗙洰鏍囨枃浠跺囦唤锛
-v锛氳︾粏鏄剧ず鍛戒护鎵ц岀殑鎿嶄綔銆傚弬鏁版簮鏂囦欢锛氬埗瀹氭簮鏂囦欢鍒楄〃銆傞粯璁ゆ儏鍐典笅锛宑p鍛戒护涓嶈兘澶嶅埗鐩褰曪紝濡傛灉瑕佸嶅埗鐩褰曪紝鍒欏繀椤讳娇鐢-R閫夐」锛
鐩鏍囨枃浠讹細鎸囧畾鐩鏍囨枃浠躲
褰撯滄簮鏂囦欢鈥濅负澶氫釜鏂囦欢鏃讹紝瑕佹眰鈥滅洰鏍囨枃浠垛濅负鎸囧畾鐨勭洰褰曘
⑶ LINUX下shell 如何将文件夹下的所有txt文件输出到一个txt文件下去
假设当前目录下有两个.txt文件,分别为1.txt和2.txt,我们希望将这两个文件的内容合并到一个新的3.txt文件中。为此,可以使用以下bash脚本来实现:
#!/bin/bash
echo "开始复制文件..."
find . -name "*.txt" | xargs cat > 3.txt
echo "复制完成!"
这个脚本的作用是首先查找当前目录下所有扩展名为.txt的文件,然后将这些文件的内容通过管道传递给cat命令,最终将所有文件的内容合并到3.txt文件中。
需要注意的是,find命令在查找文件时,需要加上引号,防止因文件名中含有空格或其他特殊字符而导致查找失败。同时,在将文件内容合并到目标文件时,使用管道和xargs命令是必要的。
例如,我们假设当前目录下存在如下文件:
1.txt 内容为 "Hello, World!"
2.txt 内容为 "Hello, Linux!"
执行上述脚本后,3.txt文件的内容将会是:
Hello, World!
Hello, Linux!
这样,我们就成功地将两个.txt文件的内容合并到了一个文件中。
⑷ Linux中SCP拷贝压缩文件,拷贝出多个文件。只想拷一个文件,怎么解
1、你得先进那个存放文件的目录,然后执行scp -P22 -rp 你要传的文件 root@另一台服务器ip地址:/要拷贝到另一台的目录。比如这样,我要传的文件在/usr下,然后想传到另一台/tmp下。我就就要执行如下命令
cd /usr
scp -P22 -rp backup.tgz.bz2 [email protected]:/tmp/
2、或者先改名你要传的文件mv backup.tgz.bz2 backup.tgz.bz2.1然后再拷过去,接着再改回来。记住不要传到对端相同一个文件夹下,不然就覆盖了