我有以下代码,它需要找到所有大于 10 KB 的文件并将它们移动到另一个目录中:
read mam
find "$mam" -type f -size +10k > size.txt
while read line
do
mv "$line" /home/patakinorbert/Desktop/prk1
done < size.txt
答案1
您不需要 shell 脚本。单个find
命令将搜索文件并移动它们:
read -r mam
find "$mam" -type f -size +10k -exec mv {} /home/patakinorbert/Desktop/prk1 \;
-exec
和之间的单词\;
是对找到的每个文件执行的命令,其中{}
替换为找到的文件的名称。
在 Linux 系统中,例如 Ubuntu,或任何使用 GNU 工具的系统,此命令的更有效版本是:
read -r mam
find "$mam" -type f -size +10k -exec mv -t /home/patakinorbert/Desktop/prk1 +
这更有效,因为它使用一次调用来移动多个文件mv
。