example - 如何在unix中移動或複制'find'命令列出的文件?




linux find mv example (3)

如果你正在使用GNU find,

find . -mtime 1 -exec cp -t ~/test/ {} +

這可以將輸出管道輸出到xargs同時避免這樣做的陷阱(它處理嵌入空間和換行而不必使用find ... -print0 | xargs -0 ... )。

我有一個使用下面的命令看到的某些文件的列表,但是如何將列出的文件複製到另一個文件夾中,比如〜/ test?

find . -mtime 1 -exec du -hc {} +

實際上,您可以通過兩種方式在復制命令中處理find命令輸出:

  1. 如果find命令的輸出不包含任何空格,即如果文件名中沒有空格,則可以使用:

    Syntax:
        find <Path> <Conditions> | xargs cp -t <copy file path>
    Example:
        find -mtime -1 -type f | xargs cp -t inner/
    
  2. 但是我們的生產數據文件可能包含空格,因此大多數時候此命令有效:

    Syntax:
       find <path> <condition> -exec cp '{}' <copy path> \;
    
    Example 
       find -mtime -1 -type f -exec cp '{}' inner/ \;
    

在第二個示例中,最後一部分,分號也被視為find命令的一部分,應該在按Enter鍵之前進行轉義。 否則你會得到一個錯誤:

find: missing argument to `-exec'

find /PATH/TO/YOUR/FILES -name NAME.EXT -exec cp -rfp {} /DST_DIR \;




mv