![Linux命令复制为硬链接,同时删除不需要的文件?](https://linux22.com/image/58405/Linux%E5%91%BD%E4%BB%A4%E5%A4%8D%E5%88%B6%E4%B8%BA%E7%A1%AC%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%90%8C%E6%97%B6%E5%88%A0%E9%99%A4%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在寻找一个行为类似于
cp -al
仅创建硬链接而不是复制文件内容,以及
rsync -a --delete
从目标中删除源中不存在的文件。我研究了rsync
与硬链接相关的选项,但它们似乎无法仅有的创建硬链接。
Linux 上有这样的命令吗?
答案1
假设您正在使用名为“src”和“dest”的目录,分别作为副本的源和目标。您可以使用以下命令管道来消除源中不存在的目标文件:
find src/* dest/* |cut -d'/' -f2- |sort |uniq -u |xargs printf "dest/%s\n" |xargs rm -f
请注意,这仅在您的文件名不包含空格或\'"
.