使用终端在Ubuntu中移动特定大小的文件

时间:2014-02-01 12:17:46

标签: bash ubuntu

我想移动大小为0字节的特定文件夹中的所有文件。我知道以下打印所有大小为零字节的文件。

find /home/Desktop/ -size  0

但我想将它们移动到另一个文件夹,所以我尝试了:

find /home/Desktop/ -size  0 | xargs -0 mv /home/Desktop/a

但这不起作用。 ?还有其他办法吗?我究竟做错了什么?

2 个答案:

答案 0 :(得分:2)

您可以使用-exec选项找到自己:

find /home/Desktop/ -size 0 -exec mv '{}' /home/Desktop/a \;

答案 1 :(得分:1)

find默认在标准输出上打印文件名,后跟换行符。选项-print0打印文件名,后跟空字符。 -0的选项xargs表示输入以空字符结束。

find /home/Desktop/ -size 0 -print0 | xargs -0 -I {} mv {} /home/Desktop/a

您可以使用find选项-exec

在这两种情况下,如果您只想查找文件,请考虑使用find的选项-type f,如果您不想查找下降目录,请考虑选项-maxdepth 1。这在您的示例中特别有用,因为您将找到的文件移动到子目录中!