企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
假设有以下目录结构,需要把当前目录.下所有文件及文件夹(dst除外)复制到其子目录dst文件夹下: ``` tree . ├── dst ├── file1.txt └── src ├── dir │ └── file3.txt └── file2.txt ``` 不能直接使用cp -a . dst: ``` cp: cannot copy a directory, ‘.’, into itself, ‘dst/.’ ``` 可行的一种方式: ``` ls | grep -v '^dst$' | xargs cp -at dst # grep -v:正则匹配取反 # cp -t: --target-directory=dir 表示将所有参数指定的源目录/文件复制到目标目录下 # cp -a: --archive 等同于 cp -dR --preserve=all ``` 执行结果: ``` tree . ├── dst │ ├── file1.txt │ └── src │ ├── dir │ │ └── file3.txt │ └── file2.txt ├── file1.txt └── src ├── dir │ └── file3.txt └── file2.txt ``` 如果当前目录下有.开头的隐藏文件也需要复制,则要使用 ``` ls -a | grep -v '^\(\.\{1,2\}\|dst\)$' | xargs cp -at dst ``` 注:需要把当前目录.和上级目录..也排除