我正在尝试使用命令创建一个目录mkdir
。但是,我想将文件子集移动到该目录中。我明白我可以使用参数,但我的尝试失败了。例如,我尝试过。它创建了目录,但在创建目录后mkdir test | xargs -i mv test.text {}
并没有将文件移动到其中。test.txt
答案1
mkdir
不输出任何内容,因此xargs
不会做任何有用的事情。我不明白你到底想做什么,所以你应该更好地解释你的问题。
“想将文件子集移动到该目录中” -> 此子集中的文件是否共享一个或多个特征?如果是,请使用寻找命令如下:
find [conditions] -exec mv "{}" dirname \;
如果你不想输入两次目录名称,或者你正在通过脚本执行此操作,则可以执行以下操作
dirname=test
mkdir $dirname && mv filename $dirname
答案2
我认为 mkdir 不会产生任何输出以通过管道传输到 xargs。
执行“mkdir test1 test2 testhello3 | grep hello”不会产生任何输出,而执行“ls | grep hello”会显示“testhello3”。
您能否先生成文件夹,然后使用 ls、grep 和 xargs 来执行此操作?
ls | grep (unique search to get folder name) | xargs -i mv test.txt {}
也许有关移动文件标准等的更多信息可能会有所帮助。
答案3
我的猜测接近用户 49740 的答案:
mkdir test && find -type f -name 'test.*' -exec mv {} test \;
您想创建多少个不同的目录?