在同一目录中移动多个同名文件

在同一目录中移动多个同名文件

我有一个包含多个同名文件的目录。

../directory ls
File.txt
File.txt
File1.txt

如何使用 mv 将所有文件移动到新目录(/new)

../new ls
File.txt
File.txt
File1.txt

更新:文件正在由源系统通过 FTP 传输到 UNIX 目录,需要使用 shell 脚本进行处理。完成后,我需要将同一文件的多个实例(如果有)移动到存档目录。

通过“处理”,我所做的就是将其复制到一个目录。并在另一个使用 MV 的存档中。使用 cp n mv 仅处理文件的一个实例。

答案1

我有一个包含多个同名文件的目录。

嗯,你不应该。你怎么能甚至cat他们的内容呢? (也就是说,每次只获取同名的第一个文件)。

如何使用 mv ../new ls File.txt File.txt File1.txt 将所有文件移动到新目录 (/new)

我决定尝试给它们起不同的名字:

mv File.txt ../new/File.txt.1
mv File.txt ../new/File.txt.2

看看你是否会以这种方式得到不同的文件。

更新:文件正在由源系统通过 FTP 传输到 UNIX 目录,需要使用 shell 脚本进行处理。

这极不可能导致同一目录中有多个同名文件的情况。所以我想不要担心这个案子。

答案2

你能不能使用通配符来移动它,例如

mv file.tx* /new/

这会将名称以 开头的所有文件移动file.tx到您的目录中/new。它将留下任何不匹配的文件,因此file1.txt将保留在目录中。如果您想移动名称为 file.txt 和 file1.txt 的任何文件,您可以将通配符 * 移动到 file 之后,例如,file*这将移动该目录中名称以 file 开头的任何文件。

相关内容