Linux

為什麼不在與 find 相同的 shell 腳本中工作?

  • January 21, 2019

我有以下程式碼,它需要找到所有大於 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

您不需要 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

引用自:https://unix.stackexchange.com/questions/495698