Linux

在不覆蓋和輸出的情況下查找和移動文件

  • June 15, 2020

我正在嘗試查找一些文件並將其從*/home/user/fol1 移動/home/user/fol2*。

通常我會使用

find . -type f -name "abc*" -exec mv -t "/path/to/foo/bar" {} +

但這會覆蓋*/path/to/foo/bar*中已經存在的同名文件。

如果文件已經存在,我希望它跳過文件。

如果這需要一個循環,我還需要在 shell 或日誌文件中的普通輸出。

有任何想法嗎?

您可以使用n選項:

find . -type f -name "abc*" -exec mv -nt "/path/to/foo/bar" "{}" +

來自man mv

-n, --no-clobber
         do not overwrite an existing file

我正在使用 Mac 終端,這個命令給出了很好的結果:

find FIle_Origin -type f -name “File_Name” -exec mv {} File_destination/ ;

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