如何移动文件并更改其名称,而无需重新输入名称,只需添加新字符

如何移动文件并更改其名称,而无需重新输入名称,只需添加新字符

我过于频繁地更改每天生成的某些文件的位置。问题是我想通过仅添加新的所需字符来更改它们的名称。

我想要的是这样的:

$ mv file.csv /home/user/{something}_backup1

所以我可以看到:

$ ls /home/user
file.csv_backup1

我现在做的事情很简单:

$ mv file.csv /home/user/file.csv_backup1

你可以说“别偷懒,就那样做吧”,问题是真实的文件名大约有 25 个字符,重新输入它们真的很烦人。

过去给出的只是一个例子,它可以是不同的目录或不同的新文本。

顺便说一句,我正在使用 bash shell

答案1

你可以使用或者在 shell rc 文件中添加的函数:

mymv(){ echo mv "$1" "$2/${1##*/}_$3"; }
mymv file.csv /home/user backup1

删除echo测试完成后的时间

答案2

恕我直言,最简单的路线是使用变量:

a=file.csv; mv "$a" ~user/"$a"_backup

您可以在设置变量和使用变量时利用变量的制表符完成功能。

答案3

在 中bash,您可以尝试以下操作:

  • 类型mv file1
  • Ctrl-w足够次数即可删除file1
  • Ctrl-y以粘贴file1回来。
  • 类型/home/user/
  • 按下Ctrl-y即可粘贴file1
  • 输入其余部分:_backup

答案4

您可以在主文件夹(或包含您要移动的文件的文件夹以外的任何文件夹)中制作简单的脚本。脚本将是这样的:

#!/bin/bash
for var in ./*
do
if [ -f "$var" ]
then
mv "$var" /home/user/"$var".backup1
fi
done
  • 在您打算从中移动文件的文件夹内运行此脚本,cd <the directory your files are in>然后运行此脚本
  • 该脚本将移动所有文件/home/user并相应地更改名称
  • 如果文件名spaces 没有问题
  • 它还将确保仅移动文件而不是目录,这样您就不会收到任何错误消息或意外结果

相关内容