linux文件夹内文件复制,如何排除某个文件
答案:4 悬赏:40 手机版
解决时间 2021-11-24 20:55
- 提问者网友:佞臣
- 2021-11-23 22:25
linux文件夹内文件复制,如何排除某个文件
最佳答案
- 五星知识达人网友:北城痞子
- 2021-11-23 23:52
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
#新建一个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
全部回答
- 1楼网友:污到你湿
- 2021-11-24 03:12
我想把我的某个目录下的某个文件夹复制(如:/tmp/a,啊是文件夹名称)到某个目录下(如:/root/a,文件夹还是叫a),请问应该怎么在命令行下操作?谢谢
譬如/abc/ 目录下有几百个类似summary1003.dat ,summary1004.dat 这样的文件,如何拷贝部分文件到另一个目录下呢》
譬如/abc/ 目录下有几百个类似summary1003.dat ,summary1004.dat 这样的文件,如何拷贝部分文件到另一个目录下呢》
- 2楼网友:詩光轨車
- 2021-11-24 01:44
我想把挂载的文件夹 复制一份到 我自己建的文件夹下 该怎么操作
比如/home 和/aaa 把/home下的文件包括隐藏文件,复制到/aaa
我用cp -r /home /aaa 结果把整个/home复制到/aaa下了。
又用cp -r /home/* /aaa 结果隐藏文件又没复制过去。
我只想用一条命令。不要再用cp -r /home/.* /aaa
有人有办法吗?
还有就是如果不想把文件夹里面的“.”“..”两个复制过去,怎么办。
网上看到有人说用正则式,不过我刚接触linux,不是很懂。而且他上面的符号没标清楚,分不清楚单引号反引号。有简单点的吗?
比如/home 和/aaa 把/home下的文件包括隐藏文件,复制到/aaa
我用cp -r /home /aaa 结果把整个/home复制到/aaa下了。
又用cp -r /home/* /aaa 结果隐藏文件又没复制过去。
我只想用一条命令。不要再用cp -r /home/.* /aaa
有人有办法吗?
还有就是如果不想把文件夹里面的“.”“..”两个复制过去,怎么办。
网上看到有人说用正则式,不过我刚接触linux,不是很懂。而且他上面的符号没标清楚,分不清楚单引号反引号。有简单点的吗?
- 3楼网友:雾月
- 2021-11-24 00:52
譬如/abc/ 目录下有几百个类似summary1003.dat ,summary1004.dat 这样的文件,如何拷贝部分文件到另一个目录下呢》
假设有一个文件夹叫a,a下面包含若干文件,还有一个b文件夹,此时我想罗列出所有a文件夹下的所有文件,而需要排除b文件夹下的文件。我现在是这么做的。
find ./a -type f | grep -v 'b'
但是我想find应该支持一种更有加的方式。追问复制也是一样的吗?主要是想用复制功能;
【刚刚两位朋友的回复被屏蔽了.....看不到】
假设有一个文件夹叫a,a下面包含若干文件,还有一个b文件夹,此时我想罗列出所有a文件夹下的所有文件,而需要排除b文件夹下的文件。我现在是这么做的。
find ./a -type f | grep -v 'b'
但是我想find应该支持一种更有加的方式。追问复制也是一样的吗?主要是想用复制功能;
【刚刚两位朋友的回复被屏蔽了.....看不到】
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯