多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
假设有以下目录结构,需要把当前目录.下所有文件及文件夹(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 ``` 注:需要把当前目录.和上级目录..也排除