gpt4 book ai didi

linux - BASH - 复制时忽略隐藏文件和空源目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:47 28 4
gpt4 key购买 nike

我是 BASH 的新手,我一直在使用 cron 作业来处理这个脚本。我遇到了一些麻烦,最初使用 mv,但事实证明它不会与匹配的目录或任何东西合并。所以我被建议使用 cp,因为据说这将合并和替换。

/schedule/= 源目录/public_html/= 目标目录

#!/bin/bash

[ignore dot files/hidden files when copying]
cp -a schedule/* public_html/
[empty contents of source directory(schedule/) after copying]

来源:/schedule/(包含文件夹/文件)

/files/
--4.html
--5.html
/assets/
--sitemap.xml

目标:/public_html/(之前的文件夹已经存在)

/files/
--1.html
--2.html
--3.html
/assets/
--sitemap.xml

最终,我试图找出如何在使用 cp 时忽略隐藏文件,以及在复制后清空源目录。我正在阅读 BASH 引用手册并看到 nullglob,但我不知道是否应该使用它。

谁能提供一个例子或为我指明正确的方向?

最佳答案

您可以使用以下查找命令列出所有未隐藏的文件和非空目录:

find /schedule -not -path '*/\.*' -not -empty

现在添加cp:

find /schedule -not -path '*/\.*' -not -empty -exec cp -a '{}' /public_html/ \;

关于linux - BASH - 复制时忽略隐藏文件和空源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com