问题说明了一切。我想在终端中复制文件,但有几个大文件我不想复制(因为它们是备份)。有命令可以做到这一点吗?
就像是cp --max-size=200MB
?
我知道rsync
有这样的选项。这是可行的方法吗?
答案1
尝试使用find
命令建立一个 200MB 以下的文件列表并将它们复制到dir
.
find . -size -200M -exec cp -r {} dir/ \;
答案2
以下是我的做法rsync
:
rsync --max-size=200MB --progress --verbose --recursive --links --perms --ignore-existing --executability --owner --group --times SOURCE TARGET
尽管如此,我还是愿意接受一个cp
解决方案。
答案3
这
find . -size -200M -exec cp -r {} dir/ \;
对我来说不起作用,因为它在找到文件夹时会复制所有文件,因为 cp 上有“r”标志。我必须执行以下操作:
获取文件大小为 -200MB 的文件列表
find /yourdirectory -type f -size -200M > list.txt
然后,从list.txt中复制文件。
cp --parents $(cat list.txt) /newFolder
“cp”和“--parents”标志将复制文件并创建必要的文件夹树。
之后,您必须将文件夹移动到正确的位置,但这很简单。
希望能帮助到你。