情况是
我有一个目录A,文件夹中有一堆文件和文件夹。例如文件夹B,文件夹C,tmp1.txt,Hello.txt,tmp3.txt,okay.txt。
在文件夹B中,也有一堆文件。
因此,我想将所有txt文件都递归地移动到另一个文件夹(例如/ home)。
这是我的代码。
find . -name "*.txt"| grep -v [\s\S]*tmp[\s\S]* -exec mv {} /home \;
我只能选择这些文件,但是不会执行移动操作。
因为linux find在result中有路径。所以这让我很烦。
要仅移动常规文件,请添加-type f
和排除不需要的文件\!
:
find . -type f -name '*.txt' \! -name '*tmp*' -exec mv -i -t /home {} +
该-i
要求得到允许覆盖文件,如果它已经存在,并且+
,而不是\;
被用于许多文件成为了可能移动与一个调用mv
(因此,我们需要与指定的目标目录-t
的选项{}
包含一个以上的文件) 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句