Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将具有特定名称的文件移动到具有特定名称的文件夹-Unix_Unix - Fatal编程技术网

将具有特定名称的文件移动到具有特定名称的文件夹-Unix

将具有特定名称的文件移动到具有特定名称的文件夹-Unix,unix,Unix,我已经试了一段时间了,有人能帮我吗 我想移动具有特定名称的文件,例如 tree.txt apple.txt 到相应的文件夹 树 苹果 我尝试过这一点,但单独做需要太多时间: mv*目录树*目的地目录/目录树 因为我需要重复200次 mv*apple*目的地目录/apple 有没有办法让这更快? 我有一个包含所有文件名的list.txt 非常感谢你, Bine假设toy在名为“filewithtxts”的文件中有txt文件列表,您可以将该文件读入while循环,然后处理每个条目 while r

我已经试了一段时间了,有人能帮我吗

我想移动具有特定名称的文件,例如

tree.txt
apple.txt

到相应的文件夹


苹果

我尝试过这一点,但单独做需要太多时间:

mv*目录树*目的地目录/目录树

因为我需要重复200次

mv*apple*目的地目录/apple

有没有办法让这更快? 我有一个包含所有文件名的list.txt

非常感谢你,
Bine

假设toy在名为“filewithtxts”的文件中有txt文件列表,您可以将该文件读入while循环,然后处理每个条目

while read file;
do
   dir=$(awk -F_ '{ print $(NF-1)"_"$NF }' <<< "${file%.txt}")
   mv *"${file%.txt}"* "destination_directory/$dir"   # Use ${file%.txt} to strip .txt from the entry 
done < filewithtxts
读取文件时
;
做

dir=$(awk-F{print$(NF-1)“{NF}”有一个名为
mmv
的工具,您可以在源路径中定义占位符,然后在目标路径中引用占位符(
mmv'*.txt''target/#1'
或类似的内容)。我认为它不起作用。这些文件有一个很长的名称,比如343_dkf_3434_tree.txt。然后这些文件夹被称为tree。所以我需要通过文件在.txt之前的最后一个结尾来捕获这些文件。无论如何,它对${file%.txt}没有什么影响谢谢,但我正在尝试,但文件不会移动。实际上它就像这个343_dkf_INTP_tree.txt和名为“INTP_tree”的文件夹。所以它需要捕捉最后两个单词。列表就像“INTP_tree”…好的,我已经修改了解决方案。