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
。