linux文件夹内文件复制,如何排除某个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文件夹内文件复制,如何排除某个文件相关的知识,希望对你有一定的参考价值。

求助~~~
linux下,假设某个文件夹data下,有data1、data2、data3......dataN-1、dataN,如何能将data1......data10进行复制,而不复制其他文件~~~

1、首先登录进linux系统,右键单击选择Open In Terminal选项

2、接下来我们在打开的终端命令行,首先用pwd命令查看当前目录,然后运用cp命令进行文件的复制,如下图所示,注意复制后的文件名称被修改了

3、回到桌面,我们可以看到已经有2个文件了,并且复制的文件名称也已改变

4、最后我们还可以通过cp命令直接复制文件夹到另一个文件夹,linux文件夹就可以排除某个文件了。

参考技术A

1、首先连接linux服务器,然后cd切换到需要打包的目录中,这里新建了几个测试文件来演示如何使用tar打包。

2、输入tar -czvf test.tar.gz *,星号表示当前目录下所有文件,平常我们打包默认都会使用*号来匹配所有文件,如果一个一个文件的写上太麻烦。

3、可以使用vi test.tar.gz命令进入tar包内查看打包的文件内容,如图的打包结果可以看出,目录下面的所有文件都打进去了。

4、一般在打包或备份应用程序的时候需要排除以上的日志文件,那么我们采用tar命令自带排除参数即可。

5、排除c.log文件,tar -czvf test.tar.gz * --exclude c.log,从打包结果中可以看出,c.log文件不再被打到tar包里了。

参考技术B

Linux中在复制一个目录时排除其中的某个文件,方法案例如下:

#新建一个test1目录
[oracle@prod ~]$ mkdir test1
#新建一个test2目录
[oracle@prod ~]$ mkdir test2
#进入test1目录
[oracle@prod ~]$ cd test1
#在test1目录新建5个txt文件
[oracle@prod test1]$ touch 1.txt 2.txt 3.txt 4.txt zhidao.txt

#然后复制test1目录文件到test2目录,排除zhidao.txt
[oracle@prod test1]$cp `ls | grep -v zhidao.txt | xargs` ../test2
#进入test2目录
[oracle@prod test1]$ cd ../test2
#查看test2目录文件,已经排除了zhidao.txt
[oracle@prod test2]$ ls -lt
total 0
-rw-r--r-- 1 oracle oinstall 0 Mar 10 17:20 1.txt
-rw-r--r-- 1 oracle oinstall 0 Mar 10 17:20 2.txt
-rw-r--r-- 1 oracle oinstall 0 Mar 10 17:20 3.txt
-rw-r--r-- 1 oracle oinstall 0 Mar 10 17:20 4.txt

参考技术C 我想把挂载的文件夹 复制一份到 我自己建的文件夹下 该怎么操作
比如/home 和/aaa 把/home下的文件包括隐藏文件,复制到/aaa
我用cp -r /home /aaa 结果把整个/home复制到/aaa下了。
又用cp -r /home/* /aaa 结果隐藏文件又没复制过去。
我只想用一条命令。不要再用cp -r /home/.* /aaa
有人有办法吗?
还有就是如果不想把文件夹里面的“.”“..”两个复制过去,怎么办。
网上看到有人说用正则式,不过我刚接触linux,不是很懂。而且他上面的符号没标清楚,分不清楚单引号反引号。有简单点的吗?
参考技术D cp $(find srcDir/ ! -name "*.*") dstDir/
将当前srcDir目录下所有无扩展文件(有扩展名的被 ! -name "*.*"排除)复制到dstDir目录下;
这里排除条件可以根据自行修改;不需要进入cd srcDir目录再复制,而且这种方式还适合mv和rm等其它指令;

linux 怎么样复制文件夹内所有文件到另一个文件夹

一般情况下可以使用cp命令来对文件夹进行复制

cp的参数中有个-r和-R可以递归地将文件夹内部所有的文件复制到另一个文件夹内

使用方法

cp -r 要复制的文件夹 复制到哪个文件夹


如果只复制该文件夹内所有的文件而不复制该文件夹内内的文件夹的话

则可以写一个脚本或者程序来完成

一个简的shell脚本如下

#!/bin/bash 

function copy()

    cd "$1"

    for i in `ls -a`
    do
        if [ "$i" == "." ] || [ "$i" == ".." ]
        then
            continue
        fi

        if [ -d "$i" ]
        then
            copy "$i" "$2"
        else
            cp "$i" "$2"
        fi
    done

    cd ..


copy "$1" "$2"

exit 0

第二个参数使用绝对路径

参考技术A cp 文件/目录复制
语法:cp 文件/目录从哪 到哪
cp bdyjy dzyx/ 将当前目录下的bdyjy文件复制到当前目录下的dzyx目录
cp bdyjy xzmly 将当前目录下的bdyjy文件复制并重名名为xzmly
cp bdyjy xzmly jzmb/ 将bdyjy和xzmly文件同时复制到jzmb目录
同时复制多个文件时目标一定是目录
cp -r fengjie furong 在复制目录时,需要添加-r的选项

注意空格,那哥们估计就不懂本回答被提问者和网友采纳
参考技术B 右键全选 或者 Ctrl+a 参考技术C cp -R srcpath destpath

以上是关于linux文件夹内文件复制,如何排除某个文件的主要内容,如果未能解决你的问题,请参考以下文章

linux文件夹内文件复制,如何排除某个文件

linux tar压缩排除某个文件夹

linux tar压缩排除某个文件夹

linux使用tar命令打包压缩时排除某个文件夹或文件

Linux的du用法排除某个目录

linux下面tar打包, 排除某个特定的目录( 只对一个目录操作, 不对其他目录操作)