Answers:
find A/ -type f -maxdepth 1 -name '.*' -exec cp -p {} B/ \;
基本语法如下所示:
find A/ -type f:find目录中A/类型为文件的项目(而不是目录)…-maxdepth 1 -name '.*':maxdepth表示1个目录中的a,其name开头为.。-exec cp -p {} B/ \;:并且一旦找到这些文件,带有标志exec的cp命令-p将保留从源({})到目的地的日期/时间B/。我喜欢使用maxdepth添加控制层的方式,因此我不会意外复制整个文件系统。但是请随意删除它。
for item in `find A -type d | grep -E "\."` ; do cp -r $item B ; done
find A -type d 提供A中仅目录的递归列表grep -E "\." 用点过滤目录(即:隐藏目录)cp -r 递归复制我已经为A创建了文件和文件夹结构,并在Git Bash中执行了命令(我现在还没有使用Linux),并且它可以正常工作。
A B,然后由于扩展到,它会意外动作cp -r A B/.dotfile B。一般建议根本不要解析find或ls输出。如果您使用,find还应该使用其自己的选项而不是进行过滤grep,如果您将find输出通过管道-print0传输到其他地方,请使用或直接调用所需的命令。请参阅find 手册。
extglob设置它们),使用外壳程序glob最安全。
find然后让我们离开解析。
或者,如果第二个字符是字母数字(source),则可以使用此其他命令:
cp -r A/.[a-zA-Z0-9]* B
.@foo或..c。
..c。