在 Linux 命令行中,我想将一组(非常大的).txt
文件从一个目录(及其子目录)复制到另一个目录。
我需要目录结构保持完整,并且我需要忽略除以 结尾的文件之外的文件.txt
。
答案1
答案2
cd /source/path
find -type f -name \*.txt -exec install -D {} /dest/path/{} \;
答案3
对我来说最简单的方法:
cp --parents -R jobs/**/*.xml ./backup/
一个问题是你必须先导航到“所需”目录,以便“父路径”是正确的。
另外,请确保在 bash 中启用了递归 glob:
shopt -s globstar
答案4
你先把它复制过来
cp -r /old/folder /new/folder
然后进入新文件夹并运行
find . -type f ! -iname "*.txt" -delete
要不就
cp -r /old/folder /new/folder && find . -type f ! -iname "*.txt" -delete
编辑:好的,您需要一个过滤命令(我没有测试过这个,因为我的系统没有这个cpio
命令!)。这是我找到它的地方:http://www.gnu.org/software/findutils/manual/html_mono/find.html#Copying-A-Subset-of-Files
find . -name "*.txt" -print0 |
cpio -pmd0 /dest-dir
请先测试一下,因为我还没有试过。如果有人能验证一下,那就太好了。