我想将几个文件从a点移动到b点
但我必须手动指定
using System;
using System.Drawing;
using System.Windows.Forms;
namespace EpicGame
{
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
}
public void MainWindow_Load(object sender, EventArgs e)
{
int EntityCount = 0;
Background.ImageLocation = "Background.jpg";
Background.SizeMode = PictureBoxSizeMode.AutoSize;
Spawn(600, 600, EntityCount, "Player 1.png"); EntityCount++;
}
// Controls
public void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.D) MoveRight();
entityPicture.Location = new Point(X, Y);
}
// Movement
public void MoveRight()
{
X++;
}
// Entity spawning
public void Spawn(int X, int Y, int ID, string Path)
{
PictureBox entityPicture = new PictureBox();
Image Entity = Image.FromFile(Path);
entityPicture.Image = Entity;
entityPicture.SizeMode = PictureBoxSizeMode.AutoSize;
entityPicture.Location = new Point(X, Y);
entityPicture.BackColor = Color.Transparent;
Controls.Add(entityPicture);
entityPicture.BringToFront();
}
private void Background_Click(object sender, EventArgs e)
{
}
}
}
但有时我需要手动移动20个文件。而不是 / full / path / form / a ,我只能输入一个函数,它返回我想要移动的所有文件;
/ full / path / to / b 是一个目录,它是目标目录,所有带有扩展名mp3,exe和mp4的文件必须转到:
mv /full/path/from/a /full/path/to/b
如果我要移动几个文件并且我不想一个接一个地执行,我该如何优化问题呢?
答案 0 :(得分:2)
您问题中的mv ls *.{mp3,exe,mp4} /full/path/to/b
命令不正确
正如@janos的评论中指出的那样,正确的命令是
mv *.{mp3,exe,mp4} /full/path/to/b
如果文件确实丢失和/或路径无法访问或无效, mv
可以抱怨丢失文件。
我可以通过您的问题描述理解,如果您手动转到源路径,您可以将文件移动到所需的目录
因此,似乎路径有效,文件存在。
为了让mv
继续抱怨*.mp3 not found
(拥有有效的路径和文件),我脑子里弹出的唯一原因是Bash路径名扩展功能(我的Debian默认启用) 。
可能由于某种原因,您的计算机中禁用了此路径名扩展bash功能。
尝试使用命令bellow启用此功能并向mv提供正确的命令,您应该没问题。
$ set +f
PS:检查man bash
有关路径名扩展的信息。