Ubuntu

如何將沒有特定副檔名的所有文件複製到另一個目錄?

  • December 8, 2021

我有兩個目錄dir1dir2. 我想將所有文件和文件夾複製dir1dir2除了具有.txt副檔名的文件之外。我怎麼能做到這一點?

rsync--exclude選項一起使用。

rsync -av --exclude '*.txt' dir1/ dir2/

POSIXly:

cd dir1 && LC_ALL=C pax -rwpe -'s|.*\.txt||' . ../dir2

請注意,至少通過http://www.mirbsd.org/pax.htm的實現(例如在 MirBSD 或paxDebian 的軟體包中找到),它還排除了目標以結尾.txt的符號連結,即使符號連結自己命名不要以.txt.

另一個區別rsync是,雖然它排除了名稱以 結尾的目錄.txt,但它不排除這些目錄中的非 txt 文件。添加一個-s'|.*\.txt/.*||'也排除那些。

-pe嘗試保留盡可能多的元數據(其列表因pax實現而異)。使用rsync,請參閱-a( -rlptgoD)-AXUHN選項以選擇要保留的內容。

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