我有5个文件,分别为file1.txt,file2.txt ... file5.txt,我想将每个文件移动到对应的目录dir1,dir2 ... dir5中。
因此,file1.txt被移动到dir1,file2.txt被移动到dir2,依此类推。
有没有一种方法可以在命令行中使用mv和xargs一次性完成这个任务呢?
我之所以建议使用xargs,是因为我很喜欢Robert Gamble提供的answer,其中回答了一个关于如何将一个文件复制到多个目录的问题。
因此,file1.txt被移动到dir1,file2.txt被移动到dir2,依此类推。
有没有一种方法可以在命令行中使用mv和xargs一次性完成这个任务呢?
我之所以建议使用xargs,是因为我很喜欢Robert Gamble提供的answer,其中回答了一个关于如何将一个文件复制到多个目录的问题。
echo dir1 dir2 dir3 | xargs -n 1 cp file1
echo
来查看实际执行的命令,然后再真正执行 - 我会记住这一点的。有没有办法在文件名为 fileA、fileB 等的文件上使用您的解决方案? - Dónal Ó Loingsighfor n in A B ...; do ...
。另外,echo
是为了帮助我调试它而留下的。我不小心把它留在那里了 :-)。我很高兴它有所帮助。 - rednebxargs
。关于文件A、文件B等的问题,我无法看出如何提供命令以使用2个输入。执行以下语句for n in {A..E}; do echo mv -- "file$n.txt" "dir$n"; done
会将 fileA.txt 移动到 dirA ,以此类推,但如果我想将 fileA.txt 移动到 dir1 - 这是否可能还是一个完全不同的问题? - Dónal Ó Loingsighmv -- "file$n.txt" "dir$(($(LC_CTYPE=C printf '%d' "'$n")-64))"
的东西来完成,其中$n
是大写字母,但要求并不完全清楚。 - redneb