我在Linux机器上有数百万个具有以下术语的文件:
1559704165_a1ac6f55fef555ee.jpg
前10位数字是时间戳,后跟数字_
是特定ID。我想将所有与特定文件名ID匹配的文件移动到另一个文件夹。
我在带有文件的目录上尝试过
find . -maxdepth 1 -type f | ??????????_a1ac*.jpg |xargs mv -t "/home/ubuntu/ntest"
但是我收到一条错误消息,指出:
bash 1559704165_a1ac6f55fef555ee.jpg: command not found
当我尝试mv ??????????_a1ac*.jpg
时,出现参数列表过长的错误。我至少有15种不同的文件名模式。我该如何移动它们。
| ??????????_a1ac*.jpg
::bash将其扩展为几个文件名,第一个是1559704165_a1ac6f55fef555ee.jpg
,因为这样您最终,在第二个管道阶段尝试执行:1559704165_a1ac6f55fef555ee.jpg next_matching_filename 3rd_matching_filename ... nth_matching_filename
。我猜您是试着改为过滤到该文件名(请参见下面的答案)