shell脚本编写 如何只复制目录下的文件,不复制目录下的文件夹

2024-12-01 17:21:05
推荐回答(3个)
回答1:

如果想连着所有子目录下的文件一起平铺着复制过去:
find 源目录 -type f -exec cp {} 目标目录 \;

如果仅仅是指定目录下的文件,不包含子目录下的文件:
ls -l 源目录 | grep -v ^d | awk '{print $9}' | xargs -I % cp % 目标目录

PS:find竟然不能设定搜索深度,于是本应该一个find能完成的就得去处理文本了做了。

回答2:

#!/bin/bash
dir="/root"
diectdir="/tmp"
ls -al $dir|grep -v "^d"|sed -e 1d|awk '{print $9}'|while read i
do
cp $dir/$i $diectdir
done
说明dir是你需要拷贝的目录,diectdir是拷贝文件到另外的目录中

回答3:

ls -l|grep -v drwx|awk '{print $9}'
这样应该就只能看到文件了吧
然后copy就可以了