linux如何复制文件夹下所有文件但不复制子目录

Posted

tags:

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

linux如何复制文件夹下所有文件但不复制子目录

直接使用cp命令即可,cp加-R参数才会复制子目录,不加此参数时只复制文件,使用:cp 源目录/* 目标目录 格式命令可实现复制文件夹下所有文件但不复制子目录目的。

cp命令说明:
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
语法
cp(选项)(参数)
选项
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
示例:
cp aaa/* /bbb
复制目录aaa下所有文件到/bbb目录下
参考技术A DIR=$1 #所要复制的目录绝对路径
DDIR=$2 #复制的目标目录绝对路径
for i in $DIR/*
do
if [ -d $i ] ;then
#echo $i
mkdir -p $DDIR/$i##*/
else
cp $i $DDIR/
fi
done
exit 0
######
复制上面的代码,做个脚本
纯手打,已在本人linux环境下亲测。给分吧!本回答被提问者采纳
参考技术B 告诉你吧,这个功能是不能实现的。要么只拷贝文件,要么拷贝文件和文件夹,也包括文件夹下的子目录文件。 参考技术C 比如要把/home/service 下的所有文件复制到/tmp下
for pre_file in $(ls /home/service);do
[ -f $pre_file ]&&cp -af $pre_file /tmp/

done

或者

find /home/service/ -type f -maxdepth 1 -exec cp /tmp/ \;
参考技术D cp命令是复制的, 但是不能做到那样, 这个需要编程技术了哦, 使用shell, python都能搞定
能看一下my网名吗?这种问题能帮助解决一下的哦

linux 中把一个文件夹下的文件复制到同目录下不同的文件夹下?

把test文件夹中的2个文件一次性复制到同目录下的其他文件夹内


#!/bin/bash


read -p '请输入要复制的路径(此路径下的所有文件会被复制):' from 

read -p '请输入要复制到的路径(源路径下的所有文件都会在此路径下所有子文件夹中被复制一份):' target

dirs=`ls $target -F | grep "/$"` # 找同级文件夹

# dirs=`find $target -type d -path $from -prune -o -path $target -prune -o -print`

# dirs=`find $target -type d` # 找所有子文件夹

for dir in $dirs

do

if [ "`realpath $target/$dir`" != "`realpath $from`" ] && [ "`realpath $target/$dir`" != "`realpath $target`" ];

then

cp -r $from/* $target/$dir

#cp -r $from/* $dir/

fi

done

参考技术A 因为你的俩文件都是add开始的,那么就可用同配符号,
因为不只是不是有其他文件也符合,所以可以用ls来看一下,
ls -l add*.*
如果只显示了俩,那么就可以复制了
cp add*.* 目的文件夹
参考技术B 打开你要复制到的目录
cp /test/* . 复制一个目录下的所有文件到当前工作目录追问

要把test里面的2个文件test1.TXT test2.TXT文件复制到下面的所有带有【小区】的20个文件夹中。

cp -r /temp/test/* /temp/  目标目录能用通配符进行匹配不?

追答

cp /temp/test/* /temp/[小区]*
你试试能不能执行?
删除用过通配符已经我用的是数字就是文件夹都是数字的,中文这个没用过,cp也没有试过

追问

不行,只能复制到一个文件夹,另一个没有复制

追答

cp /temp/test/* /temp/*[gNB] 这样试试

以上是关于linux如何复制文件夹下所有文件但不复制子目录的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu复制文件

linux 中把一个文件夹下的文件复制到同目录下不同的文件夹下?

Linux最基本命令

linux如何怎样将一个目录下的文件复制到另一个目录下?

linux如何将一个目录下所有的文件都改成775的权限

linux学习3