有没有办法在unix中批量复制/移动文件?我认为这可能是一个选择,cp/mv
但我找不到任何方法来做到这一点。
答案1
cp
和mv
分别是复制文件和移动文件的好工具。与 shell 结构(如for file in *; do ...; done
)或相结合find
,它们变得更加强大。
如果我正确理解你的目的,你已经提取了如下文件:
somedir/file.png
somedir/file.txt
并希望将所有文件移动到父目录中,使其看起来像:
file.png
file.txt
使用 shell 通配符,假设您位于目录 中somedir
,您可以使用:
mv * ../
*
是一个扩展到当前目录中所有文件的全局模式。如果您有隐藏文件(.
文件名中带有前导的文件和目录),请使用shopt -s dotglob
in bash
)。
我find
之前已经提到过。如果您有一个文件树,例如:
somedir/000.txt
somedir/a/001.txt
somedir/a/004.txt
somedir/b/003.txt
somedir/b/002.txt
somedir/whatever/somethingunique.txt
并且想要移动一个目录中的所有文件(例如,seconddir
),请使用:
find -exec mv {} seconddir/ \;
这假设所有文件名都是唯一的,否则文件将被覆盖。
答案2
你可能会很好地逃脱改名因为它更适合批处理。