我有像这样的文件夹结构
a/
-b/
-c.txt
-d.txt
-backups/
我想将文件夹a
的内容移到backups
中,因此文件夹结构就是这样。
a/
-b/
-c.txt
-d.txt
-backups/
-b/
-c.txt
-d.txt
以下是我目前使用的命令。
for d in a/*/ ; do
mkdir -p ${d}backups/
cp -ra ${d}* backups
done
我制作文件夹备份然后尝试将内容复制到backups
文件夹中。但是,我收到错误:CP Hardlink无法将文件夹复制到自身。我怎么能这样做?
谢谢
答案 0 :(得分:2)
a
├── b
├── backups
├── c.txt
└── d.txt
2 directories, 2 files
启用extglob
按shopt -s extglob
并执行cp -r !(backups/) backups
。结果如下:
a
├── b
├── backups
│ ├── b
│ ├── c.txt
│ └── d.txt
├── c.txt
└── d.txt
3 directories, 4 files
答案 1 :(得分:1)
它正在尝试将“备份”复制到“备份”中,因此您需要确保从a / * /模式中排除“备份”。
您应该使用“find”查找具有给定模式的文件并排除“backup”目录。使用find,您可以执行“-not -name backup”