我有一堆目录,就像001/
002/
003/
其他目录中混有名字的字母一样。我只想获取具有数字名称的所有目录,然后将它们移至另一个目录。
我尝试这样:
file */ | grep ^[0-9]*/ | xargs -I{} mv {} newdir
匹配的部分有效,但最终将所有内容移至newdir
...
我不确定我是否正确理解,但至少可以提供一些帮助。
使用find和xargs的组合来操作文件列表。
find -maxdepth 1 -regex './[0-9]*' -print0 | xargs -0 -I'{}' mv "{}" "newdir/{}"
使用-print0
和-0
引用替换符号{}
可使您的脚本更加健壮。它可以处理存在不可打印字符的大多数情况。这基本上表示它使用\0
char分隔符而不是来传递行\n
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句