2016-09-02 32 views
0

我有一個包含大量子目錄的文件夾。我想查找html.txt文件並將它們移動到具有相同結構的新目錄中。 I'm使用查找並複製目錄名稱的文件

find . -name "*.html.txt" | cp -t /home/.... 

但不保持名稱和目錄結構。 有沒有辦法做到這一點?

+0

你可以使用'找到。 -name「* .html.txt」| cpio -pdm/home/where/ever'。你可以使用'find。 -name「* .html.txt」| tar -cf - -T - | tar -xf -C/home/where/ever'(但它涉及兩個'tar'命令,它比單個'cpio'命令笨拙)。毫無疑問,其他選項('rsync',...)。 –

回答

1

嘗試:

find . -name '*.html.txt' | xargs cp -t /home --parents 

xargs是把各種列表到的參數列表,特別是隨着「發現」輸出通常是有用的。您也可以使用find命令中的exec命令執行此操作,但我總是發現很難快速找到正確的。

--parents是否有創建所有父目錄的技巧,因爲它們在文件列表中。

我在csh中使用這種類型的命令,它也應該在bash中工作。

大多已經回答了這裏: https://serverfault.com/questions/180853/how-to-copy-file-preserving-directory-path-in-linux

相關問題