Admia Asked: 2021-12-08 23:36:26 +0800 CST2021-12-08 23:36:26 +0800 CST 2021-12-08 23:36:26 +0800 CST 如何将没有特定扩展名的所有文件复制到另一个目录? 772 我有两个目录dir1和dir2. 我想将所有文件和文件夹复制dir1到dir2除了具有.txt扩展名的文件之外。我怎么能做到这一点? ubuntu cp 2 个回答 Voted Best Answer aviro 2021-12-08T23:43:14+08:002021-12-08T23:43:14+08:00 rsync与--exclude选项一起使用。 rsync -av --exclude '*.txt' dir1/ dir2/ Stéphane Chazelas 2021-12-09T00:37:24+08:002021-12-09T00:37:24+08:00 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选项以选择要保留的内容。
rsync
与--exclude
选项一起使用。POSIXly:
请注意,至少通过http://www.mirbsd.org/pax.htm的实现(例如在 MirBSD 或
pax
Debian 的软件包中找到),它还排除了目标以结尾.txt
的符号链接,即使符号链接自己命名不要以.txt
.另一个区别
rsync
是,虽然它排除了名称以 结尾的目录.txt
,但它不排除这些目录中的非 txt 文件。添加一个-s'|.*\.txt/.*||'
也排除那些。-pe
尝试保留尽可能多的元数据(其列表因pax
实现而异)。使用rsync
,请参阅-a
(-rlptgoD
)-AXUHN
选项以选择要保留的内容。